LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (http://www.linuxquestions.org/questions/programming-9/)
-   -   How to overcome the following error? (http://www.linuxquestions.org/questions/programming-9/how-to-overcome-the-following-error-4175458598/)

arungpillai09054 04-18-2013 03:57 AM

How to overcome the following error?
 
I got the following code,
Code:

    int main (int argc,char *argv[])
    {
      struct sha512_ctx ctx;
      char sum[64];
      int result = 0;
      int cnt;
   
      for (cnt = 0; cnt < (int) ntests; ++cnt)
        {
          sha512_init_ctx (&ctx);
          sha512_process_bytes (tests[cnt].input, strlen (tests[cnt].input), &ctx);
          sha512_finish_ctx (&ctx, sum);
          if (memcmp (tests[cnt].result, sum, 64) != 0)
            {
              printf ("test %d run %d failed\n", cnt, 1);
              result = 1;
            }
   
          sha512_init_ctx (&ctx);
          for (int i = 0; tests[cnt].input[i] != '\0'; ++i)
            sha512_process_bytes (&tests[cnt].input[i], 1, &ctx);
          sha512_finish_ctx (&ctx, sum);
          if (memcmp (tests[cnt].result, sum, 64) != 0)
            {
              printf ("test %d run %d failed\n", cnt, 2);
              result = 1;
            }
        }
      char buf[1000];
      memset (buf, 'a', sizeof (buf));
      sha512_init_ctx (&ctx);
      for (int i = 0; i < 1000; ++i)
        sha512_process_bytes (buf, sizeof (buf), &ctx);
      sha512_finish_ctx (&ctx, sum);
      static const char expected[64] =
        "\xe7\x18\x48\x3d\x0c\xe7\x69\x64\x4e\x2e\x42\xc7\xbc\x15\xb4\x63"
        "\x8e\x1f\x98\xb1\x3b\x20\x44\x28\x56\x32\xa8\x03\xaf\xa9\x73\xeb"
        "\xde\x0f\xf2\x44\x87\x7e\xa6\x0a\x4c\xb0\x43\x2c\xe5\x77\xc3\x1b"
        "\xeb\x00\x9c\x5c\x2c\x49\xaa\x2e\x4e\xad\xb2\x17\xad\x8c\xc0\x9b";
      if (memcmp (expected, sum, 64) != 0)
        {
          printf ("test %d failed\n", cnt);
          result = 1;
        }
   
      for (cnt = 0; cnt < ntests2; ++cnt)
        {
          char *cp = sha512_crypt (tests2[cnt].input, tests2[cnt].salt);
   
          if (strcmp (cp, tests2[cnt].expected) != 0)
            {
              printf ("test %d: expected \"%s\", got \"%s\"\n",
                        cnt, tests2[cnt].expected, cp);
              result = 1;
            }
        }
   
      if (result == 0)
        puts ("all tests OK");
   
      return result;
    }

While executing the above code, I got the following error,

Quote:

/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o: In
function `_start': (.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
Can anyone help us to overcome this run-time error?

pan64 04-18-2013 06:04 AM

I think you would need to give us more info:
how did you compile it, how it was executed, what os, what compiler, what else....

NevemTeve 04-18-2013 07:39 AM

> While executing the above code, I got the following error,

You didn't execute anything, you got a linkage error. Most likely the compilation wasn't successful either (your code is incomplete, so I couldn't check it).

arungpillai09054 04-23-2013 02:25 AM

To Pan64,

os : 64bit ubuntu 12.04
compiler : gcc

sir, I got this code from internet. but I didn't know how to give a string as input. At first, I thought it was due to not providing any return value. But it also showed the same kind of error.

NevemTeve 04-23-2013 02:44 AM

Good Sir, the code you pasted in is incomplete, and you didn't show the command you used. Everything else is perfect.

arungpillai09054 04-23-2013 02:46 AM

Quote:

Originally Posted by NevemTeve (Post 4937006)
Good Sir, the code you pasted in is incomplete, and you didn't show the command you used. Everything else is perfect.

sir, I used gcc command.

pan64 04-23-2013 02:48 AM

Quote:

Originally Posted by arungpillai09054 (Post 4937007)
sir, I used gcc command.

It is not an answer. Everyone should use gcc to compile code. The question is how did you use? What was the command you executed and what was the output.


All times are GMT -5. The time now is 06:06 PM.