Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Asio C++;库:asio/detail/config.hpp:没有这样的文件或目录_C++_Qt_Boost Asio_Qmake - Fatal编程技术网

C++ Asio C++;库:asio/detail/config.hpp:没有这样的文件或目录

C++ Asio C++;库:asio/detail/config.hpp:没有这样的文件或目录,c++,qt,boost-asio,qmake,C++,Qt,Boost Asio,Qmake,我下载了最新的单机版。现在我想在一个简单的Qt创建者C++项目中集成头文件库。但是,如果我尝试运行包含asio.hpp的“hello world”示例,我会收到以下错误消息(请参阅下面的完整错误消息): 这些是我迄今为止采取的步骤 在qt creator中创建了一个新项目(带有qmake的c++) 摘自asio图书馆 将asio的include和src文件夹复制到我的项目中的“libs”目录中 在.pro文件中指定c++11应该由 CONFIG+=c++11 此外,我还尝试在我的主要文件中添加以

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

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

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

    CONFIG+=c++11

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

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

    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})
    
    注意-pthread选项。我有很多链接错误没有它。另见。 文件夹结构与以前几乎相同:

    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
    
    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
    
    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})
    
    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