与朋友一起,我正在尝试修复一个可以在脚本语言构建中使用的工作CMake文件。
大多数情况下都有效。问题出在CURL上。
简而言之:它适合我,但不适合他。
的差异: - 我有OS X 10.11.1和默认的libcurl - 他有ubuntu 13.x和默认的libcurl
对我而言:/usr/lib/libcurl.dylib
对他而言:/usr/lib/x86_64-linux-gnu/libcurl.so
它适用于我,但在他身上,/usr/lib/x86_64-linux-gnu/
文件夹似乎没有被注意到。
基本上,我们看到很多连锁错误;描述未定义的符号。似乎无法链接的那些:
curl_easy_getinfo
curl_version_info
curl_slist_free_all
curl_easy_duphandle
curl_easy_setopt
curl_easy_reset
curl_easy_perform
curl_formfree
curl_slist_append
curl_easy_init
失败的构建命令:
/usr/bin/cmake -E cmake_link_script CMakeFiles/os.dir/link.txt --verbose=1
/usr/bin/c++ CMakeFiles/os.dir/os.cpp.o -o os -rdynamic -lcurl -lmysqlclient -ldl libmpfd.a libobjectscript.a lib/libsoci_core.so.3.2.2 lib/libsoci_mysql.so.3.2.2 -lmysqlclient lib/libsoci_core.so.3.2.2 -lpthread -ldl -Wl,-rpath,/home/craft/Downloads/objectscript/build/lib:
全部输出:http://pastebin.com/7dHCvDTe
我们使用的CMakeLists文件:http://pastebin.com/0sbzdWr4
我完全迷失了......我试过了:
link_directories
curl-config --libs
并在链接标志的末尾粘贴该输出但他们都没有奏效。所以,如果有人可以在这里伸出援手,真的很棒。
我想知道的是:
-lcurl
- 但在我的Mac上,它实际上将完整的路径放到了dylib。