Asio C++库:Asio/detail/config.hpp:没有这样的文件或目录
Asio C++ Library: asio/detail/config.hpp: No such file or directory
我下载了Boost的Asio库的最新独立版本。现在,我想在一个简单的qtcreator c++项目中集成仅头库。但是,如果我尝试运行包含asio.hpp的"hello-world"示例,我会收到以下错误消息(完整的错误消息请参阅下文):
asio/detail/config.hpp: No such file or directory
以下是我迄今为止采取的步骤
- 在qtcreator中创建了一个新项目(带有qmake的c++)
- 提取asio库
- 将asio的include和src文件夹复制到我项目中的"libs"目录中
在.pro文件中指定应使用c++11
CONFIG+=c++11
此外,我试着在我的主要内容中添加以下定义:
#define ASIO_STANDALONE #define ASIO_HAS_STD_ADDRESSOF #define ASIO_HAS_STD_ARRAY #define ASIO_HAS_CSTDINT #define ASIO_HAS_STD_SHARED_PTR #define ASIO_HAS_STD_TYPE_TRAITS #include <iostream> #include "libs/asio/include/asio.hpp" using namespace std; int main() { cout << "Hello World!" << endl; return 0; }
qmake似乎并不了解所有includes。我对cmake、qmake和这些东西不太熟悉。因此,作为一个noob,我试图在.pro文件中添加一个新的INCLUDEPATH。。。
INCLUDEPATH+=/libs/asio/include
得到了一个新错误:
boost/detail/atomic_count.hpp: No such file or directory
这是我的第一个错误的完整错误消息:
make: Entering directory `/home/ubuntu/asiotest-build-desktop-Qt_4_8_1_in_PATH__System__Release'
/usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ -o Makefile ../asiotest/asiotest.pro
make: Leaving directory `/home/ubuntu/asiotest-build-desktop-Qt_4_8_1_in_PATH__System__Release'
make: Entering directory `/home/ubuntu/asiotest-build-desktop-Qt_4_8_1_in_PATH__System__Release'
g++ -c -pipe -O2 -Wall -W -DQT_WEBKIT -I/usr/share/qt4/mkspecs/linux-g++ -I../asiotest -I../asiotest -I. -o main.o ../asiotest/main.cpp
In file included from ../asiotest/libs/asio/include/asio.hpp:18:0,
from ../asiotest/main.cpp:9:
../asiotest/libs/asio/include/asio/async_result.hpp:18:34: fatal error: asio/detail/config.hpp: No such file or directory
compilation terminated.
make: Leaving directory `/home/ubuntu/asiotest-build-desktop-Qt_4_8_1_in_PATH__System__Release'
make: *** [main.o] Error 1
17:55:01: The process "/usr/bin/make" exited with code 2.
Error while building project asiotest (target: Desktop)
When executing build step 'Make'
文件层次结构:
asiotest (project folder)
-- asiotest.pro
-- sources (folder)
---- main.cpp
-- libs (folder)
---- asio (folder)
------- include(folder)
---------- asio.hpp
---------- asio (folder)
------------- detail (folder)
------------- more folders
------- src
---------- asio.cpp
---------- asio_ssl.cpp
如何教qt在正确的目录中搜索包含文件
注意:很抱歉引用了源代码,但我没有通过简单地使用源代码"标记"来在编号列表中突出显示代码。
也许这对这个问题的未来访问者会很有帮助。我设法解决了这个问题。我甚至得到了运行asio的http服务器示例。同时,他也从ubuntu换成了debian,从qmake换成了cmake,但我不认为这是最终的原因。以下CMakeLists.txt适用于我:
project(asiotest)
cmake_minimum_required(VERSION 2.8)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -DASIO_STANDALONE -pthread")
aux_source_directory(. SRC_LIST)
include_directories(asio/include)
add_executable(${PROJECT_NAME} ${SRC_LIST})
注意-phread选项。如果没有它,我会遇到很多链接器错误。另请参阅此处。文件夹结构与以前几乎相同:
asiotest (project folder)
-- [..source files of http server example..]
-- libs (folder)
---- asio (folder)
------- include(folder)
---------- asio.hpp
---------- asio (folder)
------------- detail (folder)
------------- more folders
------- src
---------- asio.cpp
---------- asio_ssl.cpp
相关文章:
- 通过boost asio iostream下载大文件的最快方法是什么?
- 如何从 boost::asio::ssl::stream<boost::asio::ip::tcp::socket> 获取本机套接字文件描述器?
- 错误: C1083: 无法打开包含文件:"boost/asio.hpp": 没有此类文件或目录
- 提升::asio async_read简单的文件上传
- 提升 ASIO 绑定:错误的文件描述符
- 将 Boost Asio 与 ZeroMQ 集成,文件描述符错误?
- 可以使用ASIO BASIC_STREAM_SOCTED(或存在等效的)来写入文件
- Boost:Asio.从服务器下载图像文件
- 提升 ASIO 套接字使用文件描述符
- 使用boost:asio和select?阻止TCP输入或文件更新
- 提升asio read_u直到文件的异常结束
- 如何使用 boost::asio 来抽象文件描述符
- 提升::ASIO 文件发送
- Asio C++库:Asio/detail/config.hpp:没有这样的文件或目录
- c++ boost asio Windows文件句柄async_read_until无限循环-没有eof.< /
- 读取:ASIO中的文件结束.插座为什么要关上
- 通过Boost ASIO TCP发送文件,如何流字符数组到套接字
- Boost asio用于写入文件
- 在basic_socket.hpp文件中使用lib boost asio 1.47.0时出错
- 将boost::asio集成到基于事件循环的文件描述符中(select/poll)