gpt4 book ai didi

c++ - 如何编译同时使用 windows.h 和 google glog (glog/logging.h) 的 C++ 程序?

转载 作者:行者123 更新时间:2023-11-30 16:52:14 29 4
gpt4 key购买 nike

我有两个库A和B。库B是我自己的库,我需要其中的“windows.h”。另外,对于某些功能,我需要使用第三方库 A。A 使用 google 日志记录库,这就是问题:

第一个错误是这样的:

Severity Code Description Project File Line Error C1189 #error:  ERROR macro is defined. Define GLOG_NO_ABBREVIATED_SEVERITIES before including logging.h

我在“A.h”之前定义了 GLOG_NO_ABBREVIATED_SEVERITIES,但之后出现了奇怪的链接错误。我已经测试了建议的所有解决方案 here但它们都不起作用。

在使用“windows.h”的项目中还有其他方法使用 glog 吗?

编辑:

链接器错误是:

 error LNK2019: unresolved external symbol "__declspec(dllimport) public: char __thiscall std::basic_ios<char,struct std::char_traits<char> >::fill(char)" (__imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z) referenced in function "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char>,char>(class std::basic_ostream<char,struct std::char_traits<char> > &,struct std::_Fillobj<char> const &)" (??$?6DU?$char_traits@D@std@@D@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABU?$_Fillobj@D@0@@Z)

error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::operator<<(class std::ios_base & (__cdecl*)(class std::ios_base &))" (__imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z) referenced in function _getHtsLables

error LNK2019: unresolved external symbol "__declspec(dllimport) public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::operator<<(double)" (__imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z) referenced in function "public: virtual void __thiscall AD3::FactorDense::Print(class std::basic_ostream<char,struct std::char_traits<char> > &)" (?Print@FactorDense@AD3@@UAEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z)

fatal error LNK1120: 3 unresolved externals

最佳答案

  1. 在包含 logging.h 之前定义 GLOG_NO_ABBREVIATED_SEVERITIES

     #define GLOG_NO_ABBREVIATED_SEVERITIES
    #include <windows.h>
    #include <glog/logging.h>
  2. 在 Visual Studio 的预处理器定义中添加 GLOG_NO_ABBREVIATED_SEVERITIES,即 Project > Properties > C/C++ > Preprocessor

关于c++ - 如何编译同时使用 windows.h 和 google glog (glog/logging.h) 的 C++ 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41344738/

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