c++11 - 创建共享库时,不能使用针对 `.rodata'的R_X86_64_32重定位;用-fPIC重新编译

标签 c++11 compiler-errors makefile-errors

因此,我一直在尝试使用-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/

相关文章:

c++ - 如何在 C++ 中将不可复制的局部变量移出 lambda?

c++ - 仅由数字 0-9 组成的四字符字符串的排列

C++11 "auto"到非 C++11 编译器

c++ - 仅当给出超过 n 个参数时,如何启用可变参数模板构造函数?

ios - CGPoint 编译器错误

c++ - 如何在eclipse中一起编译C和C++文件?

scala - 在scala中的构造函数内部调用函数