Мы создали общий объектный файл и связали его с нашим исполняемым файлом:
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
для каждого файла?В какой-то момент мы потерпим крах или это нормально?