John Salmon wrote:
Sven Joachim <[EMAIL PROTECTED]> wrote in news:[EMAIL PROTECTED]:
On 2008-04-15 20:39 +0200, John Salmon wrote:
I'm running Debian Etch on a PC. When I try to compile the following
(called test.c);
#include <math.h>
#include <stdio.h>
int main()
{
double
val = 1.55;
printf("sine: %g\n", sin(val));
return 0;
}
using the command line
gcc -Wall -o test test.c
I get
/tmp/cciDV02m.o: In function `main':
test.c:(.text+0x21): undefined reference to `sin'
collect2: ld returned 1 exit status
You need to link to the math library by specifying -lm _at the end_ of
the gcc command line, otherwise the linker does not know about the sin()
function.
When I compile the equivalent C++ program using the apropriate C++
parameters, everything goes great. Have I neglected to load a Debian
package? Any help will be appreciated.
That is to be expected, because C++ programs are automatically linked
against the math library. In C you have to tell the linker to use it
with -lm.
Sven
That solved the linking problem. Now, after a successful compilation, when
I run 'test' I gen no output. ???
In the directory where you source and output executable is, try "./test".
You are not getting any output probably because you are inadvertently
using the system "test" command.
To avoid such introduction traps, I usually make such example programs
with names quite different from any commands that the system may have,
for example by using my initials or by using a number in the source
file. Using "mytest" or "example1" would have been a better choice in
your case.
->HS
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]