【问题标题】:relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC制作共享对象时,不能使用针对“.rodata”的重定位R_X86_64_32;使用 -fPIC 重新编译
【发布时间】:2017-07-06 09:26:01
【问题描述】:

所以我一直在尝试使用 -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 文件) 时?

【问题讨论】:

    标签: c++11 compiler-errors makefile


    【解决方案1】:

    显然我没有删除生成的 .a 库。先清理干净

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-22
      • 2017-07-23
      • 2018-03-31
      • 1970-01-01
      • 2017-05-22
      • 2016-06-06
      • 1970-01-01
      相关资源
      最近更新 更多