尝试在Win7 64bit上的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:错误:未定义引用`boost :: gregorian :: greg_month :: as_long_string()const'
c:\ Program Files(x86)\ boost \ boost_1_47 \ boost \ date_time \ date_formatting.hpp:44:错误:未定义引用`boost :: gregorian :: greg_month :: as_short_string()const'
我怎样才能让它发挥作用?我读到我需要构建日期时间lib,但我不确定如何做到这一点。
答案 0 :(得分:3)
这些boost库二进制文件是用Visual C ++编译器编译的(您可以通过文件名中的'vc71'进行编译),但是您正在使用QtCreator和MinGW编译器,并且您无法混合编译的C ++库不同的编译器(只有库的C部分可用)。
您可以继续使用MinGW并自行重新编译boost *,或者在项目配置中更改QtCreator使用的编译器,假设您已为该编译器安装了任何版本的Visual C ++和Qt二进制文件。
*:由于MinGW可以配置许多不同的不兼容选项,因此重新编译boost比使用预编译的二进制文件更安全,除非您确定它们是使用Qt SDK中包含的相同MinGW构建的。 子>