在编译时尝试将预编译库链接到主文件时,我得到“无法与主可执行文件链接”。
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$
之前编译的libs(add和multiply),并且存在于同一目录中。
任何人都可以给我一个暗示可能导致此错误的内容吗?
感谢名单
PS:OSX 10.6.4 with g ++ - 4.2.1
答案 0 :(得分:1)
供参考:
使用compiler-switch -dynamiclib时会出现上述错误, 尝试使用-dynamiclib -undefined dynamic_lookup进行编译。
对我有用。 :)
答案 1 :(得分:0)
看起来某人有类似的问题:ld can't link with a main executable
答案 2 :(得分:0)
我摆弄了一下,显然我修好了......
在用
编译共享库之前g++ -o libmultiply.dylib libmultiply.cc -dynamiclib
并收到上述错误。现在我再次使用
重新编译了libg++ -o libmultiply.dylib libmultiply.cc -dynamiclib -undefined dynamic_lookup
现在似乎有用了。 (至少编译和链接。) 但是我仍然需要检查一下,lib是否实际上完成了它的用途。 ;)
到目前为止,我不知道为什么链接现在不会报告错误,但也许其他人可以通过这些信息对此进行说明。 =)
只是我的2 ct。