动态链接传递,但静态链接失败

时间:2015-08-26 19:28:33

标签: gcc g++ ld

以下编译/链接传递

$ g++   --std=c++11 ../gen-cpp/SharedService.cpp ../gen-cpp/shared_types.cpp ../gen-cpp/tutorial_types.cpp  ../gen-cpp/Calculator.cpp ./client.cpp -lthrift
$ ldd ./a.out 
linux-vdso.so.1 =>  (0x00007ffd8830c000)
libthrift-0.9.2.so => not found
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f3298d41000)
libm.so.6 => /lib64/libm.so.6 (0x00007f3298a3f000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f3298829000)
libc.so.6 => /lib64/libc.so.6 (0x00007f3298467000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f329824b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3299053000)

从上面,我看到只找不到一个库(libthrift)。但是,当我尝试静态链接库时,我收到错误消息,找不到某些库。我发现很奇怪的是,提到的库是实际找到的库(上面的ldd输出),没有提到libthrift。

$ g++ -static   --std=c++11 ../gen-cpp/SharedService.cpp ../gen-cpp/shared_types.cpp ../gen-cpp/tutorial_types.cpp  ../gen-cpp/Calculator.cpp  ./client.cpp -lthrift
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status

非常感谢任何见解。

谢谢你, 艾哈迈德。

0 个答案:

没有答案
相关问题