gpt4 book ai didi

Qt 创建者 : undefined reference to `boost::gregorian::greg_month::as_short_string() const'

转载 作者:行者123 更新时间:2023-12-04 05:55:27 26 4
gpt4 key购买 nike

尝试在 Win7 64 位的 Qt Creator 中运行以下代码。

#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/date_time/gregorian/gregorian.hpp>

int main() {
using namespace boost::posix_time;
ptime t = microsec_clock::universal_time();
std::cout << to_iso_extended_string(t) << "Z\n";
}
这是我的 *.pro 文件:
INCLUDEPATH += "C:\Program Files (x86)\boost\boost_1_47"
CONFIG += boost
LIBS += -L"C:\Program Files (x86)\boost\boost_1_47\lib"
LIBS += -lboost_date_time-vc71-mt-1_47
我收到以下错误:

c:\Program Files (x86)\boost\boost_1_47\boost\date_time\date_formatting.hpp:49: error: undefined reference to `boost::gregorian::greg_month::as_long_string() const'

c:\Program Files (x86)\boost\boost_1_47\boost\date_time\date_formatting.hpp:44: error: undefined reference to `boost::gregorian::greg_month::as_short_string() const'


我怎样才能让它发挥作用?我读到我需要构建日期时间库,但我不确定我将如何做到这一点。

最佳答案

这些 boost 库二进制文件是使用 Visual C++ 编译器编译的,并且是为 Visual C++ 编译器编译的(您可以通过文件名中的“vc71”来猜测),但是您使用的是 QtCreator 和 MinGW 编译器,并且您不能混合使用不同编译器编译的 C++ 库(只有库的 C 部分可用)。

您可以继续使用 MinGW 并自己重新编译 boost *,或者在项目配置中更改 QtCreator 使用的编译器,假设您已经为该编译器安装了任何版本的 Visual C++ 和 Qt 二进制文件。

* :由于 MinGW 可以配置许多不同的不兼容选项,因此重新编译 boost 比使用预编译的二进制文件更安全,除非您确定它们是使用 Qt SDK 中包含的相同 MinGW 构建的。

关于Qt 创建者 : undefined reference to `boost::gregorian::greg_month::as_short_string() const' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9558972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com