链接问题与GCC 4.6.1 [英] Linking issue with GCC 4.6.1
问题描述
我一直在努力编译和链接,使用Ubuntu服务器11.01 64位版本下Boost库C ++应用程序。
起初不是$ P $ suceeding ppackaged Boost库,我决定把它编译我自己。升压没有问题编译,但是当我尝试编译应用程序,连接器开始,就像没有图书馆被列入喷涌而出的错误。
I have been struggling to compile and link a C++ application that uses Boost libraries under a Ubuntu Server 11.01 64-bit edition. At first not suceeding with prepackaged Boost libraries, I decided to compile it on my own. Boost compiles with no problem, but when I try to compile an application, linker starts spewing out errors as though no libraries were included.
builtinFunctions.o: In function `__static_initialization_and_destruction_0(int, int)':
builtinFunctions.cpp:(.text+0xcaab): undefined reference to `boost::system::generic_category()'
builtinFunctions.cpp:(.text+0xcab7): undefined reference to `boost::system::generic_category()'
builtinFunctions.cpp:(.text+0xcac3): undefined reference to `boost::system::system_category()'
builtinFunctions.o: In function `boost::system::error_code::error_code()':
builtinFunctions.cpp:(.text._ZN5boost6system10error_codeC2Ev[_ZN5boost6system10error_codeC5Ev]+0x17): undefined reference to `boost::system::system_category()'
builtinFunctions.o: In function `boost::filesystem3::exists(boost::filesystem3::path const&)':
...
这是我使用一个Makefile:
This is a Makefile that I use:
CC=g++
CFLAGS=-std=c++0x -c -Wall -I . -I ./boost_1_48_0/ -DBOOST_THREAD_USE_LIB
all: project
project: builtinFunctions.o main.o operators.o conversionUtils.o
$(CC) -L./boost_1_48_0/stage/lib/ \
-lpthread -lboost_date_time-gcc46-mt-s-1_48 -lboost_program_options-gcc46-mt-s-1_48 \
-lboost_filesystem-gcc46-mt-s-1_48 -lboost_system-gcc46-mt-s-1_48 builtinFunctions.o \
main.o operators.o conversionUtils.o -o project
main.o: main.cpp
$(CC) $(CFLAGS) main.cpp
operators.o: operators.cpp
$(CC) $(CFLAGS) operators.cpp
conversionUtils.o: conversionUtils.cpp
$(CC) $(CFLAGS) conversionUtils.cpp
builtinFunctions.o: builtinFunctions.cpp
$(CC) $(CFLAGS) builtinFunctions.cpp
clean:
rm -rf *o project
还有什么我可以尝试,除了GCC的早期版本?谢谢你。
Anything else I could try besides an earlier version of GCC? Thank you.
推荐答案
在链接线库的顺序事项,而你是错的。
The order of libraries on link line matters, and yours is wrong.
这篇关于链接问题与GCC 4.6.1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!