C++ Asio C++;库:asio/detail/config.hpp:没有这样的文件或目录
我下载了最新的单机版。现在我想在一个简单的Qt创建者C++项目中集成头文件库。但是,如果我尝试运行包含asio.hpp的“hello world”示例,我会收到以下错误消息(请参阅下面的完整错误消息): 这些是我迄今为止采取的步骤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 此外,我还尝试在我的主要文件中添加以
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