0

我的系统中已经安装了 VS 2010。因此,当我下载 QT(我必须使用 QT 作为项目 req 所在的内容)时,我使用了这个链接并安装了它。它能够自动检测可视 C++ 编译器并且工作正常。

现在我从 boost.org 下载了 boost 库,并使用 Visual Studio 命令提示符下的以下命令进行安装:-

> bootstrap.bat msvc
> 
> c:\boost_1_54_0>b2 install --prefix=c:/boostinst toolset=msvc-10.0
> variant=debug ,release link=static threading=multi

之后我打开了 qt creator 并添加了以下代码 cpp 文件

#include <boost/regex.hpp>
#include
#include

int main()
{
    std::string line;
    boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );

    while (std::cin)
    {
        std::getline(std::cin, line);
        boost::smatch matches;
        if (boost::regex_match(line, matches, pat))
            std::cout << matches[2] << std::endl;
    }
}

并使用 ADD Library 添加了库,并生成了以下 .pro 文件。

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
INCLUDEPATH += C:\boostinst\include\boost-1_54 #if i remove this line, then also the same error



win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../boostinst/lib/ -llibboost_regex-vc100-mt-1_54
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../boostinst/lib/ -llibboost_regex-vc100-mt-1_54d
else:unix: LIBS += -L$$PWD/../../../boostinst/lib/ -llibboost_regex-vc100-mt-1_54

INCLUDEPATH += $$PWD/../../../boostinst/include
DEPENDPATH += $$PWD/../../../boostinst/include

当我尝试构建时,它会引发以下错误

C:\Users\xxx\newcp\main.cpp:24:错误:C1083:无法打开包含文件:'boost/regex.hpp':没有这样的文件或目录

我错过了什么或做错了什么?请任何人尽快回复。

4

1 回答 1

1

已解决:在 32 位操作系统 Win7 和 msvc-10.0 中使用以下命令构建 boost_154_00

>     cd C:\boost_1_54_0\tools\build\v2\engine
>     build.bat msvc
>
>     cd boost_1_54_0
>     
>     set PATH=%PATH%;C:\boost_1_54_0\tools\build\v2\engine\bin.ntx86
>     
>     bjam toolset=msvc-10.0

然后在 QT 中创建一个新项目并粘贴到main.cpp

#include <QCoreApplication>
#include <boost/regex.hpp>
#include <iostream>
#include <string>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    std::string line;
     boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );

     while (std::cin)
     {
         std::getline(std::cin, line);
         boost::smatch matches;
         if (boost::regex_match(line, matches, pat))
             std::cout << matches[2] << std::endl;
     }
    return a.exec();
}

.pro添加

INCLUDEPATH+=C:\boost_1_54_0
LIBS+=-LC:\boost_1_54_0\stage\lib\

按照这里的指示

然后在 qt project->run->arguments 中添加参数

于 2013-07-26T10:41:16.660 回答