ASIO C++库:ASIO/Debug /CONTION.HPP:没有这样的文件或目录

我下载了Boost的Asio库的最新独立版本。现在我想在一个简单的Qt创建者C++项目中集成头文件库。但是,如果我尝试运行包含asio.hpp的“hello world”示例,我会收到以下错误消息(请参阅下面的完整错误消息):

asio/detail/config.hpp:没有这样的文件或目录

这些是我迄今为止采取的步骤

  1. 在qt creator中创建了一个新项目(带有qmake的c++)
  2. 摘自asio图书馆
  3. 将asio的include和src文件夹复制到我的项目中的“libs”目录中
  4. 在.pro文件中指定c++11应该由

    CONFIG+=c++11

  5. 此外,我还尝试在我的主要文件中添加以下定义:

#定义ASIO#U独立
#定义ASIO\U的标准地址
#定义ASIO_HAS_STD_数组
#定义你有什么力量
#定义ASIO\u已共享\u标准\u PTR
#定义ASIO_具有_标准_类型_特征
#包括<iostream>
#包括“libs/asio/include/asio.hpp”
使用名称空间std;
int main()
{
cout<<<<<<世界你好!<<<endl;
返回0;
}
  1. qmake似乎并不知道所有的include。我和cmake、qmake和这类东西不太相似。所以作为一个noob,我尝试在.pro文件中添加一个新的INCLUDEPATH

    INCLUDEPATH+=./libs/asio/include

…并出现新错误:

boost/detail/atomic_count.hpp:没有这样的文件或目录

这是我的第一个错误的完整错误消息:

make:进入目录“/home/ubuntu/asiotest-build-desktop-Qt\u 4\u 8\u 1\u在\u路径\u系统\u发布版”
/usr/bin/qmake-qt4-spec/usr/share/qt4/mkspecs/linux-g++-o Makefile../asiotest/asiotest.pro
make:将目录“/home/ubuntu/asiotest-build-desktop-Qt\u 4\u 8\u 1\u保留在\u路径\u系统\u发布版”
make:进入目录“/home/ubuntu/asiotest-build-desktop-Qt\u 4\u 8\u 1\u in\u PATH\u系统\u发布”
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
在../asiotest/libs/asio/include/asio.hpp:18:0包含的文件中,
从../asiotest/main.cpp:9:
../asiotest/libs/asio/include/asio/async_result.hpp:18:34:致命错误:asio/detail/config.hpp:没有这样的文件或目录
编译终止。
make:将目录“/home/ubuntu/asiotest-build-desktop-Qt\u 4\u 8\u 1\u保留在\u路径\u系统\u发布版”
make:**[main.o]错误1
17:55:01:进程“/usr/bin/make”已退出,代码为2。
生成项目asiotest时出错(目标:桌面)
执行生成步骤“Make”时

文件层次结构:

asiotest(项目文件夹)
–asiotest.pro
–来源(文件夹)
—-main.cpp
–库(文件夹)
—-asio(文件夹)
——-包括(文件夹)
———-阿西奥水电站
———-asio(文件夹)
————-详细信息(文件夹)
————-更多文件夹
——-src
———-asio.cpp
———-asio_ssl.cpp

如何教qt在正确的目录中搜索包含文件?

注意:很抱歉引用了源代码,但是我没有通过简单地使用源代码“tag”在编号列表中突出显示代码

也许这会对这个问题的未来访问者有所帮助。我设法解决了这个问题。我甚至还运行了asio的http服务器示例。同时也从ubuntu切换到debian,从qmake切换到cmake,但我不认为这是最终的原因。以下CMakeLists.txt适用于我:

项目(asiotest)
cmake_最低要求(2.8版)
设置(CMAKE_CXX_标志“${CMAKE_CXX_标志}-std=c++11-DASIO_STANDALONE-pthread”)
辅助源目录(.SRC\u列表)
包含目录(asio/include)
添加可执行文件(${PROJECT\u NAME}${SRC\u LIST})

注意-pthread选项。我有很多链接错误没有它。请参见此处。
文件夹结构与以前几乎相同:

asiotest(项目文件夹)
–[…http服务器示例的源文件..]
–库(文件夹)
—-asio(文件夹)
——-包括(文件夹)
———-阿西奥水电站
———-asio(文件夹)
————-详细信息(文件夹)
————-更多文件夹
——-src
———-asio.cpp
———-asio_ssl.cpp

发表评论