1

我们创建了一个共享对象文件并链接到我们的可执行文件:

add_executable(a ${A_SRC})
add_library(testso SHARED src/mainlib.cc test1.cc test2.cc)
target_link_libraries(a, testso)

我们注意到代码在没有 的情况下编译-fPIC,但链接使用-fPIC

g++ -std=c++11 -g -c -i../../src ./test1.cc
g++ -std=c++11 -shared -fPIC ../mainlib.cc test1.o -o testso.so

-fPIC每个文件都需要标志吗?我们会在某个时候崩溃还是这样?

4

0 回答 0