我自己编译了boost库,使用g ++ 4.8编译成功完成。一切都在〜/ bin / boost中。编译后,所有文件都位于/ Users / $(USER)/ bin / boost / stage / lib /
中以下必要的部分:
CC=g++-4.8
LD=g++-4.8
BOOST_LIB_PATH=/Users/$(USER)/bin/boost/stage/lib/
BOOST_HEADER_PATH=/Users/$(USER)/bin/boost/
LFLAGS=-L$(BOOST_LIB_PATH) -lboost_thread
release: $(OBJ)
$(LD) $(OBJ) obj/main.o $(LFLAGS) -o $(RELEASE_NAME)
编译期间一切正常但链接过程失败。基本上所有错误都是一样的:
ndefined symbols for architecture x86_64:
"boost::system::system_category()", referenced from:
__static_initialization_and_destruction_0(int, int)
我已经读过: Attempting to use Boost.Filesystem however it doesn't seem to link? C++ / Boost: Undefined Symbols in example? 和许多其他人一样,但仍未找到解决方案。
我不知道问题在哪里,我已经改变了链接的顺序,我尝试直接链接线程库,但我仍然得到相同的结果。 在mac os x 10.8.4下编译https://github.com/dbedla/snake-cpp11期间出现问题(我必须修改makefile)
如果有任何解决问题的建议,我将不胜感激。
对不起我的英文:(
答案 0 :(得分:5)
您还需要在-lboost_system
之后添加-lboost_thread
。
答案 1 :(得分:0)
您的问题与boost 系统类别有关,因此您也需要链接到(libboost_system)。
CC=g++-4.8
LD=g++-4.8
BOOST_LIB_PATH=/Users/$(USER)/bin/boost/stage/lib/
BOOST_HEADER_PATH=/Users/$(USER)/bin/boost/
LFLAGS=-L$(BOOST_LIB_PATH) -lboost_thread -lboost_system
release: $(OBJ)
$(LD) $(OBJ) obj/main.o $(LFLAGS) -o $(RELEASE_NAME)