Re: Problem compiling simple C program
"Joost Witteveen" <joosteto@gmail.com> wrote in
news:ajhhp-1Nx-29@gated-at.bofh.it:
> On 16/04/2008, John Salmon <salmonjj@comcast.net> wrote:
>> Sven Joachim <svenjoac@gmx.de> wrote in
>> news:aiYRm-2Tc-23@gated-at.bofh.it:
>>
>>
>> > 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. ???
>
>
> "test" is a bash-builtin, and is a executable in /usr/bin/test, so
> that is what you were running.
> You can run your "test" command by typing
> ./test
> or rename it to something else.
>
>
Of Cource! I'm an old dog learning new tricks. Yhanks all for
understanding.
--
John Salmon
salmonjj@comcast.net
---- Posted via Pronews.com - Premium Corporate Usenet News Provider ----
http://www.pronews.com offers corporate packages that have access to 100,000+ newsgroups
Reply to: