Results 1 to 5 of 5

Thread: Odd linking problem

  1. #1
    Join Date
    May 2007
    Beans
    4,513
    Distro
    Ubuntu

    Odd linking problem

    Can anyone spot what is wrong with this?

    Code:
    $ gcc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/json-glib-1.0  -pthread -ljson-glib-1.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0 -I./deps/Linux/ -I. -L./deps/Linux/ -L. -ggdb -Wall -o bot main.c -lz -ldl
    /tmp/ccjGwQ3I.o: In function `parse_new_json':
    /home/vadi/Systems/vadi-2.1/main.c:3067: undefined reference to `json_parser_new'
    /home/vadi/Systems/vadi-2.1/main.c:3069: undefined reference to `json_parser_load_from_data'
    /home/vadi/Systems/vadi-2.1/main.c:3075: undefined reference to `json_parser_get_root'
    /tmp/ccjGwQ3I.o: In function `get_name':
    /home/vadi/Systems/vadi-2.1/main.c:3082: undefined reference to `json_node_get_object'
    /home/vadi/Systems/vadi-2.1/main.c:3082: undefined reference to `json_object_get_string_member'
    /home/vadi/Systems/vadi-2.1/main.c:3085: undefined reference to `json_node_get_object'
    /home/vadi/Systems/vadi-2.1/main.c:3085: undefined reference to `json_object_get_string_member'
    /home/vadi/Systems/vadi-2.1/main.c:3087: undefined reference to `json_node_get_object'
    /home/vadi/Systems/vadi-2.1/main.c:3087: undefined reference to `json_object_get_string_member'
    /tmp/ccjGwQ3I.o: In function `handle_gmcp':
    /home/vadi/Systems/vadi-2.1/main.c:3112: undefined reference to `json_node_get_node_type'
    /home/vadi/Systems/vadi-2.1/main.c:3117: undefined reference to `json_node_get_object'
    /home/vadi/Systems/vadi-2.1/main.c:3117: undefined reference to `json_object_get_int_member'
    /home/vadi/Systems/vadi-2.1/main.c:3118: undefined reference to `json_node_get_object'
    /home/vadi/Systems/vadi-2.1/main.c:3118: undefined reference to `json_object_get_string_member'
    /home/vadi/Systems/vadi-2.1/main.c:3120: undefined reference to `json_node_get_object'
    /home/vadi/Systems/vadi-2.1/main.c:3120: undefined reference to `json_object_get_object_member'
    /home/vadi/Systems/vadi-2.1/main.c:3120: undefined reference to `json_object_get_members'
    /home/vadi/Systems/vadi-2.1/main.c:3144: undefined reference to `json_node_get_array'
    /home/vadi/Systems/vadi-2.1/main.c:3145: undefined reference to `json_array_foreach_element'
    collect2: ld returned 1 exit status
    A bit out of ideas myself :/

  2. #2
    Join Date
    Sep 2008
    Beans
    551
    Distro
    Ubuntu 16.04 Xenial Xerus

    Re: Odd linking problem

    You have to add all your custom .c files after main.c in the compile command as well...

  3. #3
    Join Date
    Oct 2007
    Beans
    1,914
    Distro
    Lubuntu 12.10 Quantal Quetzal

    Re: Odd linking problem

    When linking in Linux, the order of the libraries is important. I would suggest trying to put "main.c" before "-ljson-glib-1.0", but I'm not sure if that helps.

  4. #4
    Join Date
    May 2007
    Beans
    4,513
    Distro
    Ubuntu

    Re: Odd linking problem

    Other .c's are build as libraries so it doesn't matter... changing the order didn't matter as well:

    Code:
    $ gcc main.c `pkg-config --cflags --libs glib-2.0 gthread-2.0 json-glib-1.0 gobject-2.0` -I./deps/Linux/ -I. -L./deps/Linux/ -L. -ggdb -Wall -o bot -lz -ldl
    /tmp/ccjw9dFA.o: In function `parse_new_json':
    /home/vadi/Systems/vadi-2.1/main.c:3065: undefined reference to `json_parser_new'
    /home/vadi/Systems/vadi-2.1/main.c:3067: undefined reference to `json_parser_load_from_data'
    /home/vadi/Systems/vadi-2.1/main.c:3073: undefined reference to `json_parser_get_root'
    /tmp/ccjw9dFA.o: In function `get_name':
    /home/vadi/Systems/vadi-2.1/main.c:3080: undefined reference to `json_node_get_object'
    /home/vadi/Systems/vadi-2.1/main.c:3080: undefined reference to `json_object_get_string_member'
    /home/vadi/Systems/vadi-2.1/main.c:3083: undefined reference to `json_node_get_object'
    /home/vadi/Systems/vadi-2.1/main.c:3083: undefined reference to `json_object_get_string_member'
    /home/vadi/Systems/vadi-2.1/main.c:3085: undefined reference to `json_node_get_object'
    /home/vadi/Systems/vadi-2.1/main.c:3085: undefined reference to `json_object_get_string_member'
    /tmp/ccjw9dFA.o: In function `handle_gmcp':
    /home/vadi/Systems/vadi-2.1/main.c:3110: undefined reference to `json_node_get_node_type'
    /home/vadi/Systems/vadi-2.1/main.c:3115: undefined reference to `json_node_get_object'
    /home/vadi/Systems/vadi-2.1/main.c:3115: undefined reference to `json_object_get_int_member'
    /home/vadi/Systems/vadi-2.1/main.c:3116: undefined reference to `json_node_get_object'
    /home/vadi/Systems/vadi-2.1/main.c:3116: undefined reference to `json_object_get_string_member'
    /home/vadi/Systems/vadi-2.1/main.c:3118: undefined reference to `json_node_get_object'
    /home/vadi/Systems/vadi-2.1/main.c:3118: undefined reference to `json_object_get_object_member'
    /home/vadi/Systems/vadi-2.1/main.c:3118: undefined reference to `json_object_get_members'
    /home/vadi/Systems/vadi-2.1/main.c:3142: undefined reference to `json_node_get_array'
    /home/vadi/Systems/vadi-2.1/main.c:3143: undefined reference to `json_array_foreach_element'
    collect2: ld returned 1 exit status

  5. #5
    Join Date
    May 2007
    Beans
    4,513
    Distro
    Ubuntu

    Re: Odd linking problem

    Turns out I had a bad copy of the library in the compile folder.

Bookmarks

Posting Permissions

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