Я работаю над библиотекой, которая должна компилироваться в Linux и Mac OS X. До сих пор у меня не было проблем, компиляция с "-g" хорошо работала в обеих ОС.
Я попытался скомпилировать с некоторой оптимизацией ("-O2"), и она хорошо работает под Linux, но я получаю неопределенный символ, когда пытаюсь связать программу с моей библиотекой под Mac OS X.
Кто-нибудь знает, что мне искать?
nm mylib.a | grep _the_symbol
Это возвращает то же самое для linux и mac (без подчеркивания в linux):
154:00000018 C _the_symbol
377: U _the_symbol
Вот строка компиляции под linux для программы, использующей библиотеку:
/usr/bin/gcc -std=c99 CMakeFiles/prod-cons.dir/prod-cons.c.o -o prod-cons -rdynamic -L/home/claferri/dev/build/src ../src/libckaapi.a -lpthread -Wl,-rpath,/home/claferri/dev/build/src
А под mac:
/usr/bin/gcc -std=c99 -Wl,-search_paths_first -headerpad_max_install_names -fPIC CMakeFiles/prod-cons.dir/prod-cons.c.o -o prod-cons -L/Volumes/Data/claferri/Work/build/src ../src/libckaapi.a /usr/lib/libpthread.dylib