我有一个libSomelib.a,它可以通过以下命令链接到可执行文件:
g++ -L. -lsomeLib -lpcrecpp -lpcre -lpthread main.cpp -o main
但是如何从中链接包含所有依赖项的共享对象?
我想用新的someLib.so实现以下功能:
g++ -L. -lsomeLib main.cpp -o main
我尝试了以下内容:
g++ -shared -L. -lsomeLib -lpcrecpp -lpcre -lpthread -o libSomelib_static.so
这给了我一个没有符号的.so文件。
PS:我完全是编制者的开头。
答案 0 :(得分:1)
这里有一些问题:
g++ -o main -pthread main.cpp -L. -lsomeLib -lpcrecpp -lpcre
。-fPIC
编译器标志)。档案通常没有这个标志。-pthread
标志,而不是-lpthread
。