C++ “什么会导致?”;can';t链接到主可执行文件";共享图书馆?
当我在编译时试图将预编译库链接到主文件时,会得到一个“无法链接到主可执行文件”C++ “什么会导致?”;can';t链接到主可执行文件";共享图书馆?,c++,macos,linker,C++,Macos,Linker,当我在编译时试图将预编译库链接到主文件时,会得到一个“无法链接到主可执行文件” hostname:folder user$ g++ -o add testadd.cc -ladd -lmultiply -L. ld: in ./libmultiply.dylib, can't link with a main executable collect2: ld returned 1 exit status hostname:folder user$ 以前编译过的lib(add和multiply)
hostname:folder user$ g++ -o add testadd.cc -ladd -lmultiply -L.
ld: in ./libmultiply.dylib, can't link with a main executable
collect2: ld returned 1 exit status
hostname:folder user$
以前编译过的lib(add和multiply)和都位于同一目录中
谁能给我一个提示是什么导致了这个错误
塔克斯
PS:OSX 10.6.4和g++-4.2.1看起来有人有过类似的问题:看起来有人有过类似的问题:我在周围摆弄了一下,显然我已经修复了它 在用编译共享库之前
g++ -o libmultiply.dylib libmultiply.cc -dynamiclib
并收到了提到的错误。现在我重新编译了lib,使用
g++ -o libmultiply.dylib libmultiply.cc -dynamiclib -undefined dynamic_lookup
现在它似乎起作用了。(至少是编译和链接。)
但是我仍然需要检查lib是否真的做了它所要做的事情
到目前为止,我不知道为什么现在的链接没有报告错误,但也许其他人可以通过这些信息来说明这一点。=)
就我的两个ct。我拨弄了一下,显然我把它修好了 在用编译共享库之前
g++ -o libmultiply.dylib libmultiply.cc -dynamiclib
并收到了提到的错误。现在我重新编译了lib,使用
g++ -o libmultiply.dylib libmultiply.cc -dynamiclib -undefined dynamic_lookup
现在它似乎起作用了。(至少是编译和链接。)
但是我仍然需要检查lib是否真的做了它所要做的事情
到目前为止,我不知道为什么现在的链接没有报告错误,但也许其他人可以通过这些信息来说明这一点。=)
仅限我的2个ct。供参考:
当使用编译器开关-dynamiclib时,会出现上述错误,
请尝试使用-dynamiclib-undefined dynamic_lookup进行编译
对我来说,这很有效。:) 供参考:
当使用编译器开关-dynamiclib时,会出现上述错误,
请尝试使用-dynamiclib-undefined dynamic_lookup进行编译
对我来说,这很有效。:) 请向我们展示您如何构建库—编译和链接命令。您是否在其中一个库中定义了main()函数?请向我们展示您如何构建库—编译和链接命令。您是否在其中一个库中定义了main()函数?