错误:C1083:无法打开包括文件:'boost/asio.hpp':没有那个文件或目录。

3

我使用Windows 7中的Qt Creator。当我使用32位VC 2010编译器编译我的项目时,出现错误:

错误:C1083:无法打开包括文件:“boost / asio.hpp”:没有那个文件或目录

.pro文件:

LIBS += -L"D:/MDT/boost_1_71_0/libs" - 
   llibboost_date_time-vc141-mt-x32-1_71 \
    - 
    L"D:/MDT/boost_1_71_0/libs" - 
    llibboost_regex-vc141-mt-x32-1_71 \

main.cpp

   #include <boost/asio.hpp>
2个回答

2
您需要告诉编译器在哪里查找包含文件。
在 .pro 文件中添加
INCLUDEPATH += 在您的情况下,可能是
INCLUDEPATH += D:/MDT/boost_1_71_0/

我使用了你的方法,我的问题得到解决,但出现了另一个错误:asio.hpp:20: error: C1083: 无法打开包括文件: 'boost/asio/associated_allocator.hpp':没有那个文件或目录。 - william YUANG
@williamYUANG,你是否像这样包含它 #include "boost/asio/associated_allocator.hpp" 而不是这样 #include <boost/asio/associated_allocator.hpp>?如果不是这种情况,请检查文件是否存在。例如,对我来说它在'C:\Users\Username\Documents\Boost\boost\asio\associated_allocator.hpp'。在这种情况下,INCLUDEPATH 应该是 C:\Users\Username\Documents\Boost,并且 include 指令应该看起来像 #include <boost/asio/associated_allocator.hpp> - SingerOfTheFall
我的代码是 #include <boost/asio/associated_allocator.hpp>,所有文件都存在于 boost 库中。我没有更改 boost 库中的任何内容。 - william YUANG

0

您需要使用INCLUDEPATH来指定库头文件的位置,因此您需要在.pro文件中添加:INCLUDEPATH += D:/MDT/boost_1_71_0/并运行qmake。

但是,在boost库名称中,msvc141代表Visual Studio 2017,它与您正在使用的Visual Studio 2010不兼容,因此您很可能会遇到链接器错误或奇怪的运行时崩溃。要解决这个问题,您需要下载使用Visual Studio 2010构建的boost版本,在您下载boost的网站上查找msvc10(根据您的需求选择32位或64位),并获取该版本。


我使用了您的方法,我的问题得到了解决,但是另一个问题出现了:asio.hpp:20: error: C1083: 无法打开包括文件: 'boost/asio/associated_allocator.hpp': 没有那个文件或目录。 - william YUANG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接