You are not logged in.

#1 2011-04-04 21:26:59

zuargo
Member
From: Concepción, Chile
Registered: 2009-08-20
Posts: 116

Error compiling: /usr/bin/ld: cannot find -lutilities [SOLVED]

Hello everyone

I try to compile a game called pokemon-online tongue

I got the source from the GIT repository:

http://sourceforge.net/projects/pogeymon-online/develop

Inside the source code, a file called HowToBuild says:

HOW TO BUILD THE PROJECT:
* Learn how to use Git
* Download all the files using Git
* Install the Qt Framework on your computer, or at least the libraries
* For linux users, install libzip-dev package (For Ubuntu --in a terminal--: sudo apt-get install libzip-dev)
* On linux just run the makefile, then add pogeymon-online/bin to your LD_LIBRARY_PATH. 
  For that add `export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/pogeymon-online/bin/` with the correct path to the bin directory to the end of your ~/.bashrc file.
* On windows Build src/Utilities/Utilities.pro and src/PokemonInfo/PokemonInfo.pro and thensrc/Teambuilder/Teambuilder.pro. To build those files, open them with Qt Creator and build the projects and run them. For the server it's src/Server/Server.pro
* On mac, you need to run qmake -spec macx-g++ if you want Makefile. Running qmake without -spec option creates .xcodeproject file, which you can build using xcodebuild command line tool or XCode IDE. After compiling client, run bin/bundle_mac_app.sh to copy resources inside application bundle

I have installed libzip package on my sistem.

So, when I run make, I get this error:

$ make
compiling utilities.
qmake -makefile -o src/PokemonInfo/Makefile src/PokemonInfo/PokemonInfo.pro
make -C src/PokemonInfo
make[1]: se ingresa al directorio `/home/zuargo/Paquetes/pokemon-online/src/PokemonInfo'
g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIC -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtXml -I/usr/include -I. -o pokemonstructs.o pokemonstructs.cpp
g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIC -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtXml -I/usr/include -I. -o pokemoninfo.o pokemoninfo.cpp
g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIC -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtXml -I/usr/include -I. -o networkstructs.o networkstructs.cpp
g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIC -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtXml -I/usr/include -I. -o movesetchecker.o movesetchecker.cpp
g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIC -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtXml -I/usr/include -I. -o battlestructs.o battlestructs.cpp
g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIC -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtXml -I/usr/include -I. -o teamsaver.o teamsaver.cpp
g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIC -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt/mkspecs/linux-g++ -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtXml -I/usr/include -I. -o moc_teamsaver.o moc_teamsaver.cpp
rm -f libpokemonlib.so.1.0.0 libpokemonlib.so libpokemonlib.so.1 libpokemonlib.so.1.0
g++ -Wl,--hash-style=gnu -Wl,--as-needed -shared -Wl,-soname,libpokemonlib.so.1 -o libpokemonlib.so.1.0.0 pokemonstructs.o pokemoninfo.o networkstructs.o movesetchecker.o battlestructs.o teamsaver.o moc_teamsaver.o   -L/usr/lib -L../../bin -lutilities -lzip -lQtXml -lQtGui -lQtCore -lpthread  
/usr/bin/ld: cannot find -lutilities
collect2: ld devolvió el estado de salida 1
make[1]: *** [../../bin/libpokemonlib.so.1.0.0] Error 1
make[1]: se sale del directorio `/home/zuargo/Paquetes/pokemon-online/src/PokemonInfo'
make: *** [src/PokemonInfo/PokemonInfo.pro] Error 2

I have searched by /usr/bin/ld: cannot find -lutilities on google but I can't find any information.

So, I ran pacman -Ql | grep /usr/bin/ld, and I got this:

$ pacman -Ql | grep /usr/bin/ld
binutils /usr/bin/ld
binutils /usr/bin/ld.bfd
binutils /usr/bin/ld.gold
glibc /usr/bin/ldd
glibc /usr/bin/lddlibc4
nasm /usr/bin/ldrdf

As you see binutils provides /usr/bin/ld, so I ran pacman -Ss binutils, and I got this:

$ pacman -Ss binutils
core/binutils 2.21-4 (base) [installed]
    A set of programs to assemble and manipulate binary and object files
community/binutils-avr 2.21-1
    A set of programs to assemble and manipulate binary and object files for the avr architecture
community/cross-arm-elf-binutils 2.21-2
    A set of programs to assemble and manipulate binary and object files
community/cross-arm-wince-cegcc-binutils 0.59.1-1 (cegcc) [installed]
    CE GCC bundle - cross compilation tools for WinCE
community/mingw32-binutils 2.21-1
    A set of programs to assemble and manipulate binary and object files (mingw)

Then I installed every one fo those packages, but still I get the same error :'(

Searching on google by binutils, I found this:

The GNU Binutils are a collection of binary tools. The main ones are:

ld - the GNU linker.
as - the GNU assembler.

But they also include:

addr2line - Converts addresses into filenames and line numbers.
ar - A utility for creating, modifying and extracting from archives.
c++filt - Filter to demangle encoded C++ symbols.
dlltool - Creates files for building and using DLLs.
gold - A new, faster, ELF only linker, still in beta test.
gprof - Displays profiling information.
nlmconv - Converts object code into an NLM.
nm - Lists symbols from object files.
objcopy - Copys and translates object files.
objdump - Displays information from object files.
ranlib - Generates an index to the contents of an archive.
readelf - Displays information from any ELF format object file.
size - Lists the section sizes of an object or archive file.
strings - Lists printable strings from files.
strip - Discards symbols.
windmc - A Windows compatible message compiler.
windres - A compiler for Windows resource files.

Source: http://www.gnu.org/software/binutils/binutils.html

Maybe, I need install some of those binary tools, which one are not at the official repos.

Can anybody give me any idea?, please.

Thanks in advance.

Last edited by zuargo (2011-04-06 14:43:45)

Offline

#2 2011-04-05 11:33:49

stqn
Member
Registered: 2010-03-19
Posts: 1,191
Website

Re: Error compiling: /usr/bin/ld: cannot find -lutilities [SOLVED]

This:

On windows Build src/Utilities/Utilities.pro

makes me think that the makefile is supposed to build a "libutilities" but based on your make output it doesn't seem to be doing it.

Looks like an upstream bug in the makefile.

I've had a quick look at the makefile and... you could try removing the space at the beginning of line 24.

$(1)/%.pro: Makefile $$(wildcard $(1)/*.cpp) $$(wildcard $(1)/*.h) $$(wildcard $(1)/*.o)

PS: you can uninstall all the extra binutils packages you've installed smile.

Last edited by stqn (2011-04-05 11:35:41)

Offline

#3 2011-04-06 13:37:37

zuargo
Member
From: Concepción, Chile
Registered: 2009-08-20
Posts: 116

Re: Error compiling: /usr/bin/ld: cannot find -lutilities [SOLVED]

Thank you very much!!

Works!!!

smile

Offline

#4 2011-04-06 14:03:15

stqn
Member
Registered: 2010-03-19
Posts: 1,191
Website

Re: Error compiling: /usr/bin/ld: cannot find -lutilities [SOLVED]

Great smile
Please mark the thread as [SOLVED] then...

Offline

Board footer

Powered by FluxBB