undefined reference while linking with a shared object-Collection of common programming errors

Your question suffers lack of information, but I can suggest you at first try

gcc main.c ./libfile.so -Wl,-rpath . -o test

If this will fail, you have something wrong with your sources. If everything is ok at this point, then try

gcc main.c -L . -lfile -Wl,-rpath . -o test

If this will output undefined reference, then probably you already have something like libfile.a without my_putstr(may be from previous experiments) in your lib path.

If everything is ok with it, then your linker is sensible to order in which libraries is supplied to command string, and you must remember, then library always comes after object, that uses this library.

Originally posted 2013-11-09 22:47:18.