Results 1 to 5 of 5

Thread: problem with <math.h> using gcc

  1. #1
    Junior Member
    Join Date
    Jan 2004
    Posts
    3

    problem with <math.h> using gcc

    I started using Knoppix (3.3) some days ago, mainly to write C-programs (but I'm liking it more&more, also for the rest of the package!).
    I am, however, experiencing problems in compiling programs that use <math.h>. F.i.:
    Code:
    #include <stdio.h>
    #include <math.h>
    
    int main(){
       printf("%f\n",sqrt(123.456));
       return 0;
       }
    Won't compile, giving:
    Code:
    knoppix@ttyp0[test]$ gcc test.c
    /tmp/cc8Hr3am.o(.text+0x1a): In function `main':
    : undefined reference to `sqrt'
    collect2: ld returned 1 exit status
    Can someone explain what's going wrong? I have no problems including <ctype.h> or <string.h>.

    I'm a complete Linux noob, so please help me...

  2. #2
    Senior Member registered user
    Join Date
    Mar 2003
    Posts
    555
    It's a link-time error; you need to add '-lm' to your command line in order to pull in the math library.

  3. #3
    Junior Member
    Join Date
    Jan 2004
    Posts
    3
    Thx very much! It worked!

    Are there more problems to be expected when including standard header files? Is -lm always enough to cure these kind of linking problems?
    And more important: where can I find info on these matters?

    Thx in advance.

  4. #4
    Senior Member registered user
    Join Date
    Mar 2003
    Posts
    555
    These are not problems, just the way the C compiler works on pretty much every unix system. -lm is a shortcut meaning you want the linker to look in standard places for a library called libm.a. On linux, tens of libraries live under /usr/lib, amongst which the default libc.a. If you wanted to link against say libcups.a, you could similarly specify -lcups. If you want to see what's in a library , use ar (eg "ar -tvf /usr/lib/libm.a").

    As to where to look for information, I'm afraid the references I might give you would be embarassingly outdated (hints: Kernighan & Richie, Kernighan & Pike, Rochkind, Stevens). Just google for "unix programming". Have fun ... and be prepared for what might become a long journey!

  5. #5
    Junior Member
    Join Date
    Jan 2004
    Posts
    3
    Thanks again!
    I'm not afraid of a long journey!

Similar Threads

  1. COPROCESSOR AND MATH EMULATION
    By kb in forum General Support
    Replies: 0
    Last Post: 06-10-2004, 06:51 PM
  2. Math symbols messed up in Mozilla
    By Arkaein in forum Hdd Install / Debian / Apt
    Replies: 0
    Last Post: 05-03-2004, 07:58 PM
  3. openoffice math tutorial
    By cherry in forum General Support
    Replies: 0
    Last Post: 03-22-2004, 06:48 PM
  4. Problem Unique to Knoppix Later Versions!(SIS problem!)
    By bongski55 in forum Hardware & Booting
    Replies: 4
    Last Post: 11-15-2003, 10:19 AM
  5. Wierd Problem With USB Keyboard, Maybe Motherboard Problem
    By Triple Six in forum Hardware & Booting
    Replies: 2
    Last Post: 04-15-2003, 04:23 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


HP ProLiant Xeon E3-1220L V2 16 GB RAM 2.30 GHz MicroServer Gen8 NO DRIVES picture

HP ProLiant Xeon E3-1220L V2 16 GB RAM 2.30 GHz MicroServer Gen8 NO DRIVES

$174.99



HP PROLIANT MICROSERVER MICRO SERVER HSTNS-5151 T4 Used. picture

HP PROLIANT MICROSERVER MICRO SERVER HSTNS-5151 T4 Used.

$45.00



HP ProLiant HSTNS-5151 Micro Server 8GB RAM No Drives/Key/Caddies *READ* picture

HP ProLiant HSTNS-5151 Micro Server 8GB RAM No Drives/Key/Caddies *READ*

$94.99



Supermicro Server Tower Xeon BOOTS E5-2620 v4 2.10GHz 64GB RAM NO HDD NO OS picture

Supermicro Server Tower Xeon BOOTS E5-2620 v4 2.10GHz 64GB RAM NO HDD NO OS

$199.99



SuperMicro Server 505-2 Intel Atom 2.4GHz 8GB RAM SYS-5018A-FTN4 1U Rackmount picture

SuperMicro Server 505-2 Intel Atom 2.4GHz 8GB RAM SYS-5018A-FTN4 1U Rackmount

$202.49



HPE ProLiant MicroServer Gen10 Plus v2 Ultra Micro Tower Server - 1 x Intel Xeon picture

HPE ProLiant MicroServer Gen10 Plus v2 Ultra Micro Tower Server - 1 x Intel Xeon

$846.19



SUPERMICRO CSE-512 AMD Opteron Processor 6128, 32GB DDR3 RAM NO HDD picture

SUPERMICRO CSE-512 AMD Opteron Processor 6128, 32GB DDR3 RAM NO HDD

$90.00



Supermicro 5018A-FTN4 Rack Server - Black picture

Supermicro 5018A-FTN4 Rack Server - Black

$125.00



2U 12 Bay SAS3 SuperMicro Server 6028U-TR4T+ W/ X10DRU-i+ Barebone 12 Caddy RAIL picture

2U 12 Bay SAS3 SuperMicro Server 6028U-TR4T+ W/ X10DRU-i+ Barebone 12 Caddy RAIL

$299.00



1U Supermicro Server 10 Bay 2x Intel Xeon 3.3Ghz 8C 128GB RAM 480GB SSD 2x 10GBE picture

1U Supermicro Server 10 Bay 2x Intel Xeon 3.3Ghz 8C 128GB RAM 480GB SSD 2x 10GBE

$297.00