因此,我一直在尝试使用-fPIC重新编译,但似乎我遇到了相同的错误,我做对了还是遗漏了其他东西?
all: pr1 pr2
pr1:
g++ -std=c++11 -fPIC -c $(wildcard pr1.cpp)
g++ -std=c++11 -o $(PROGRAM) pr1.o $(LIBRARY) $(LINKER_FLAGS)
rm -f pr1.o
pr2:
g++ -std=c++11 -fPIC -c $(wildcard pr2.cpp)
g++ -std=c++11 -o $(PROGRAM1) pr2.o $(LIBRARY) $(LINKER_FLAGS)
rm -f pr2.o
该问题似乎发生在第二个程序(pr2)上,可能是当我尝试重用LIBRARY(.a文件)时?
最佳答案
显然我没有删除生成的.a库。首先清洁
关于c++11 - 创建共享库时,不能使用针对 `.rodata'的R_X86_64_32重定位;用-fPIC重新编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44944905/