You are here

ld: cannot find -lz

6 posts / 0 new
Last post
ld: cannot find -lz
#1

Dear colleagues,

I am trying to install Rosetta 3.3 on:

- HP ProLiant DL380 G6
- CPU: 2 x Intel Xeon Quad Core
- OS = SUSE SLES 11, kernel 2.6.27.19, x86_64
- compiler: gcc 4.3-62.198-x86_64
- python: 2.6.5
- scons: 2.1.0

command: scons bin mode=release

crash + error message:

/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libm.a when searching for -lm
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
g++ -o build/src/release/linux/2.6/64/x86/gcc/libutility.so -Wl,-rpath=/xprogs/ROSETTA/rosetta3.3_bundles/rosetta_source/build/external/release/linux/2.6/64/x86/gcc/ -shared build/src/release/linux/2.6/64/x86/gcc/utility/io/icstream.os build/src/release/linux/2.6/64/x86/gcc/utility/io/izstream.os build/src/release/linux/2.6/64/x86/gcc/utility/io/ocstream.os build/src/release/linux/2.6/64/x86/gcc/utility/io/ozstream.os build/src/release/linux/2.6/64/x86/gcc/utility/options/keys/OptionKeys.os build/src/release/linux/2.6/64/x86/gcc/utility/excn/Exceptions.os build/src/release/linux/2.6/64/x86/gcc/utility/sql_database/DatabaseSessionManager.os build/src/release/linux/2.6/64/x86/gcc/utility/pointer/ReferenceCount.os build/src/release/linux/2.6/64/x86/gcc/utility/pointer/ReferenceCountMI_.os build/src/release/linux/2.6/64/x86/gcc/utility/options/OptionCollection.os build/src/release/linux/2.6/64/x86/gcc/utility/options/mpi_stderr.os build/src/release/linux/2.6/64/x86/gcc/utility/tag/Tag.os build/src/release/linux/2.6/64/x86/gcc/utility/boinc/boinc_util.os build/src/release/linux/2.6/64/x86/gcc/utility/file/file_sys_util.os build/src/release/linux/2.6/64/x86/gcc/utility/file/FileName.os build/src/release/linux/2.6/64/x86/gcc/utility/file/gzip_util.os build/src/release/linux/2.6/64/x86/gcc/utility/file/PathName.os build/src/release/linux/2.6/64/x86/gcc/utility/basic_sys_util.os build/src/release/linux/2.6/64/x86/gcc/utility/string_util.os build/src/release/linux/2.6/64/x86/gcc/utility/heap.os build/src/release/linux/2.6/64/x86/gcc/utility/integer_mapping.os build/src/release/linux/2.6/64/x86/gcc/utility/mpi_util.os build/src/release/linux/2.6/64/x86/gcc/utility/exit.os build/src/release/linux/2.6/64/x86/gcc/utility/LexicographicalIterator.os -Llib -Lexternal/lib -Lbuild/src/release/linux/2.6/64/x86/gcc -Lsrc -Lbuild/external/release/linux/2.6/64/x86/gcc -Lexternal -L/usr/local/lib -L/usr/lib -lObjexxFCL -lz -lcppdb -lsqlite3
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
scons: *** [build/src/release/linux/2.6/64/x86/gcc/libutility.so] Error 1
scons: building terminated because of errors.

I don't quite understand the missing -lz. Do I have to install additional libraries here, and if so, which libraries? Needless to say, I am a compiler/linker novice...

Thanks in advance and best regards,

Uli G.

Post Situation: 
Wed, 2011-10-19 03:45
UliG

You need to install the zlib libraries. I don't know the package name for your OS; in Ubuntu it's zlib1g-dev.

https://www.rosettacommons.org/node/1893

https://www.rosettacommons.org/content/error-when-compiling-ubuntu-1010

Wed, 2011-10-19 07:06
smlewis

well, the z-library seems to be installed, it's found in /lib64/zlib.so.1 (linked to zlib.so.1.2.3)(version 1.2.3-106.34). I also tried to softlink it from /usr/lib and /usr/local/lib, just in case the linker doesn't look in /lib/64, but that doesn't work either.

Cheers,

Uli

Thu, 2011-10-20 03:43
UliG

A) I think you may need the "dev" version of zlib, not the runtime version. I think it supplies a linkable compression routine library? Perhaps it has #includable headers? I'm not entirely sure.

B) You can try some sort of override like this in user.settings:

settings = {
"user" : {
"prepends" : {
"library_path" : [
"/usr/lib64",
],
},
"appends" : {
"flags":{
},
},
"overrides" : {
},
"removes" : {
"flags":{
},
},
}
}

Thu, 2011-10-20 06:53
smlewis

I am having a similar problem on a CentOS machine.

When I attempt to compile:

python scons.py -j12 mode=debug bin

I get the same error, always on this command.

g++ -o build/src/debug/linux/3.10/64/x86/gcc/4.8/default/libObjexxFCL.so -Wl,-rpath=/home/rootjcminer/Rosetta/main/source/build/external/debug/linux/3.10/64/x86/gcc/4.8/default -Wl,-rpath=\$ORIGIN -Wl,-rpath=\$ORIGIN/../lib -shared build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/char.functions.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/Cstring.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/Dimension.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/DimensionExpression.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/DimensionExpressionRef.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/DynamicIndexRange.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/format.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/Fstring.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/IndexRange.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/Observer.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/ObserverGraph.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/ObserverMediator.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/ObserverMulti.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/Star.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/string.functions.os build/src/debug/linux/3.10/64/x86/gcc/4.8/default/ObjexxFCL/Time_Date.os -Lexternal/lib -Lbuild/src/debug/linux/3.10/64/x86/gcc/4.8/default -Lsrc -Lbuild/external/debug/linux/3.10/64/x86/gcc/4.8/default -Lexternal -L/usr/lib -L/usr/local/lib -lz -lcppdb -lsqlite3 -lcifparse -lxml2
/bin/ld: cannot find -lz
collect2: error: ld returned 1 exit status
scons: *** [build/src/debug/linux/3.10/64/x86/gcc/4.8/default/libObjexxFCL.so] Error 1

I made sure to install the most recent updated version of zlib:

sudo yum install zlib

My machine identifies itself the zlib as being up-to-date: zlib-1.2.7-17.el7.x86_64

The versions of software and operating system that I am using on this computer are the following:

----------------------------------------------------------------------------------

Python 2.7.5 (default, Nov  6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2

uname -a: Linux 3.10.0-514.10.2.el7.x86_64

CPU: 12x Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz

----------------------------------------------------------------------------------

The user.settings that you recommended editing, is that the one in  Rosetta/main/source/tools/build/user.settings?

Tue, 2017-10-17 09:26
jcminerlanl

From what I can tell, the plain `zlib` package on CentOS is for pre-compiled programs that use zlib. If you want to compile with zlib (as we do here), you need to install the `zlib-devel` package as well.

Yes, Rosetta/main/source/tools/build/user.settings is the user.settings file to edit.

Wed, 2017-10-18 09:52
rmoretti