【发布时间】:2014-08-26 19:28:58
【问题描述】:
我安装了 boost 并创建了一个 make 文件,它将我的静态 boost 库链接到主程序,这里是包含 boost 库的 Makefile 的快照(请向下滚动):
LIBRARY_PATH="-L/usr/lib \
-lboost_chrono-mt \
-lboost_date_time-mt \
-lboost_filesystem-mt \
-lboost_graph-mt \
-lboost_graph_parallel-mt \
-lboost_iostreams-mt \
-lboost_locale-mt \
-lboost_math_c99f-mt \
-lboost_math_c99l-mt \
-lboost_math_c99-mt \
-lboost_math_tr1f-mt \
-lboost_math_tr1l-mt \
-lboost_math_tr1-mt \
-lboost_mpi-mt \
-lboost_mpi_python-mt-py26 \
-lboost_mpi_python-mt-py27 \
-lboost_mpi_python-mt-py32 \
-lboost_prg_exec_monitor-mt \
-lboost_program_options-mt \
-lboost_python-mt-py26 \
-lboost_python-mt-py27 \
-lboost_python-mt-py32 \
-lboost_random-mt \
-lboost_regex-mt \
-lboost_serialization-mt \
-lboost_signals-mt \
-lboost_system-mt \
-lboost_test_exec_monitor-mt \
-lboost_thread-mt \
-lboost_timer-mt \
-lboost_unit_test_framework-mt \
-lboost_wave-mt \
-lboost_wserialization-mt"
all : main
$(CC) $(LIBRARY_PATH) $(OBJECTS) -o $(APPLICATION)
运行构建时出现如下错误:
/usr/include/boost/system/error_code.hpp:214: 未定义的引用 `boost::system::generic_category()'
为了解决问题,我将 -lboost_system-mt 移动到编译器的命令行,如下所示:
all : main
$(CC) $(LIBRARY_PATH) $(OBJECTS) -lboost_system-mt -o $(APPLICATION)
当我这样做时,它工作正常,但我希望我的 LIBRARY_PATH 在一个地方而不是在命令行上。 如何解决 LIBRARY_PATH 变量以使其工作?
这样它就会运行: $(CC) $(LIBRARY_PATH) $(OBJECTS) -o $(APPLICATION)
【问题讨论】: