luojunwei / SLR

Scaffolding using long reads obtained by the third generation sequencing technologies.
GNU General Public License v3.0
9 stars 1 forks source link

makefile:6: recipe for target 'SLR' failed #3

Open sutterjlynn opened 4 years ago

sutterjlynn commented 4 years ago

Dear Junwei, during the "make all" step to compile SLR, have the following error:

g++ -o SLR main.o contig.o aligningFromBam.o scaffoldgraph.o scaffolding.o ./lp/liblpsolve55.a -I / /ebio/abt3_projects/software/miniconda3_gt4.4/envs/SLR/lib/libbamtools.a -lm -ldl -lz /usr/bin/ld: ./lp/liblpsolve55.a(lp_lib.o): relocation R_X86_64_32S against '.rodata' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_wlp.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_matrix.o): relocation R_X86_64_32 against '.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_mipbb.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_MPS.o): relocation R_X86_64_32 against symbol `MPSnameFIXED' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_params.o): relocation R_X86_64_32 against '.rodata' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_presolve.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_price.o): relocation R_X86_64_32 against '.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_pricePSE.o): relocation R_X86_64_32 against '.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_report.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_scale.o): relocation R_X86_64_32 against '.text' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_simplex.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_SOS.o): relocation R_X86_64_32 against '.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_utils.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_MDO.o): relocation R_X86_64_32 against '.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(commonlib.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(mmio.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(myblas.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(ini.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(colamd.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_rlp.o): relocation R_X86_64_32 against '.rodata.str1.8' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_crash.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_LUSOL.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lusol.o): relocation R_X86_64_32S against '.rodata' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(lp_Hash.o): relocation R_X86_64_32 against '.rodata' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: ./lp/liblpsolve55.a(yacc_read.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC /usr/bin/ld: final link failed: Nonrepresentable section on output collect2: error: ld returned 1 exit status makefile:6: recipe for target 'SLR' failed make: *** [SLR] Error 1

Since your testing was done with gcc4.6.3, I suspect my problem may be related to my gcc setup: Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Thread model: posix gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)

Is is absolutely necessary to use such an outdated version of gcc? Conda-forge and Anaconda.org go back only to 7.3 and 7.2 respectively. Thanks!

wheaton5 commented 4 years ago

I am having the same problem.

pmoulos commented 4 years ago

Hello, changing the first 2 lines in makefile to:

CC=g++ --std=c++11 -no-pie

CPPFLAGS = -g -Wall -O3 -fPIC

worked for me.

Source: StackOverflow