我正在尝试编译一个可执行文件,同时也想将其用作共享库。当我清楚地将其编译和链接为"可执行文件"时,一切都很好-文件可以启动并正常工作。在这个阶段,我无法正确地将其他库与其链接(日志中有大量重新定义)。当我尝试添加选项-Fpic-shared-程序成功编译,但以分段错误开始。我如何使它既可执行又是“共享库”?
g++ -c -o module.o module.cpp # create an object that has no main()
g++ -shared -fPIC -o libmodule.so module.o # build shared library
g++ -o program module.o main.cpp # build executable
或者,最后一行可以链接共享库(在这种情况下,您需要在运行可执行文件时拥有该库):
g++ -o program -l module main.cpp
/lib/libc.so.6
... - Basile Starynkevitch