2014-02-20 4 views
1

Я загрузил фреймворк программного обеспечения с веб-сайта Чемпионата по предварительной обработке данных (http://www.jilp.org/dpc/) и установил его на компьютер с ОС Ubuntu 64 бит. Я следовал всем инструкциям для распаковки сжатого файла, и вошел в команду «сделать» для компиляции и это то, что я получил:Ошибка при компиляции

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. Помогите?

+0

Вы пытались связаться с людьми, участвующими в конкурсе? Я уверен, что они будут видеть это раньше и имеют конкретные инструкции, хотя вам, возможно, придется их явно просить. Помимо этого, сообщение об ошибке сообщает вам, какие флаги необходимо добавить при создании библиотеки, чтобы сделать ее связанной с вашей средой, - или вы можете попробовать просить исходный код библиотеки и создать ее локально, что увеличится вероятность того, что у вас будет версия, которая счастливо связывается с вашим собственным кодом. – keshlam

+0

Почему вы проходите прямой путь 'libz.a'? Как насчет использования '-lz' вместо'/usr/lib/x86_64-linux-gnu/libz.a'? – ahmad

ответ

2

Я не знаю, как вы скомпилируете это приложение, но вы должны добавить -fPIC к флагам компиляции (CFLAGS и CXXFLAGS) файлов C/C++ и перекомпилировать приложение.

0

я также столкнулась с той же проблемой упоминается выше, но я могу решить ее с Scientific Linux 5.4 с GCC 4.1 конфигурацию, и я сделал одну ошибку, когда мы должны установить путь к комплекту упреждающей. Был '$' знак, который мы должны удалить, установив путь для этого. PREF_KIT

Смежные вопросы