【发布时间】:2014-04-23 00:00:44
【问题描述】:
我正在关注this tutorial,但它没有说明我需要包含哪些库才能获得提升,当前的链接选项是:
-I/usr/include/opencv2 -I/usr/include/boost_1_55_0 -I/usr/include/boost_1_55_0/boost -O0 -g3 -Wall -c -fmessage-length=0
但是这会返回以下错误:
这表明它找不到 asio,是我做错了什么还是 assio 是链接到的错误库?或者有没有其他方法可以查到。请注意,这是我的第二个 c++ 项目(通过我有很多 java 经验),首先是大量使用库,因此需要一些细节。
删除 boost/asio 给了我以下错误:
make all
Building target: DisplayImage
Invoking: GCC C++ Linker
g++ -L/usr/include/opencv2 -L/usr/include/boost_1_55_0/boost -L/usr/include/boost_1_55_0 -L/usr/include/opencv2 -L/usr/lib -o "DisplayImage" ./src/Cap.o ./src/DisplayImage.o ./src/Filters.o ./src/sender.o -lopencv_imgproc -lopencv_highgui -lopencv_core
./src/sender.o: In function `__static_initialization_and_destruction_0':
/usr/include/boost_1_55_0/boost/system/error_code.hpp:222: undefined reference to `boost::system::generic_category()'
/usr/include/boost_1_55_0/boost/system/error_code.hpp:223: undefined reference to `boost::system::generic_category()'
/usr/include/boost_1_55_0/boost/system/error_code.hpp:224: undefined reference to `boost::system::system_category()'
./src/sender.o: In function `error_code':
/usr/include/boost_1_55_0/boost/system/error_code.hpp:323: undefined reference to `boost::system::system_category()'
./src/sender.o: In function `boost::asio::error::get_system_category()':
/usr/include/boost_1_55_0/boost/asio/error.hpp:224: undefined reference to `boost::system::system_category()'
collect2: ld returned 1 exit status
make: *** [DisplayImage] Error 1
构建完成**
如果重要的话,我会使用 ubuntu (x64) 笔记本电脑。
【问题讨论】:
-
什么是
-lboost/asio?好像没什么意义,去掉这个选项就好了。Boost.Asio只是标题,你不需要链接任何东西;但是,它取决于Boost.System,所以添加-lboost_system。 -
删除 boost/asio 会给我大量未定义的引用,但这可能只是因为它在到达未定义的部分之前就崩溃了/?
-
什么未定义的引用?请复制链接器输出。正如我在上面的评论中提到的,您是否与 Boost.System 链接
-
好的,我添加了请求的信息。
-
@你看过之前的cmets吗?
-lboost.asio是什么?没意思,删! “未充分引用”的列表在哪里?