编译期间出错

Error during compilation

本文关键字:出错 编译      更新时间:2023-10-16

我从数据预取锦标赛网站(http://www.jilp.org/dpc/)下载了一个软件框架,并安装在装有Ubuntu OS的64位计算机上。 我按照解压缩文件的所有说明进行操作,并输入"make"命令进行编译,这就是我收到的:

g++ -Wl,-u,main -g -shared -Wl,-Bsymbolic -Wl,--version-script=/grads/hhoffman/Documents/ELE_591/PREF_KIT/pin-2.5-22247-gcc.4.0.0-ia32_intel64-linux/source/include/pintool.ver -L/grads/hhoffman/Documents/ELE_591/PREF_KIT/pin-2.5-22247-gcc.4.0.0-ia32_intel64-linux/Lib/ -L/grads/hhoffman/Documents/ELE_591/PREF_KIT/pin-2.5-22247-gcc.4.0.0-ia32_intel64-linux/ExtLib/ -L/grads/hhoffman/Documents/ELE_591/PREF_KIT/pin-2.5-22247-gcc.4.0.0-ia32_intel64-linux/extras/xed2-intel64/lib -L/grads/hhoffman/Documents/ELE_591/PREF_KIT/pin-2.5-22247-gcc.4.0.0-ia32_intel64-linux/intel64/lib -L/grads/hhoffman/Documents/ELE_591/PREF_KIT/pin-2.5-22247-gcc.4.0.0-ia32_intel64-linux/intel64/lib-ext  -o bin/CMPsim.usetrace ./bin/libCMPsim64.a ./src/prefetch/sample_prefetcher.o -lpin  -lxed -ldwarf -lelf -ldl  /usr/lib/x86_64-linux-gnu/libz.a
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libz.a(gzio.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/lib/x86_64-linux-gnu/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [CMPsimpref64] Error 1

我相信,问题出在libz.a文件上。 帮助?

我不知道

您如何编译此应用程序,但您应该将-fPIC添加到C/C++文件的编译标志(CFLAGS和CXXFLAGS)中并重新编译该应用程序。

我也遇到了上面提到的相同问题,但我能够使用带有 gcc 5.4 配置的科学 linux 4.1 来解决它,并且当我们必须设置路径以预取套件时,我犯了一个错误。在为该PREF_KIT设置路径时,我们必须删除"$"符号