Я пытаюсь использовать библиотеку логов (ССЫЛКА НА САЙТ).
В VS2012 (я использую 64-разрядную версию Windows 8 Professional (японская версия)) я создаю пустое решение с одним файлом main.cpp, как в документации (ССЫЛКА НА САЙТ).
Также я импортирую проект glog внутри решения (либо DLL-файл, либо статический-библиотечный) и устанавливаю зависимость проекта.
Чтобы избежать некоторых ошибок, я должен закомментировать строку 97 из port.h:
/* In windows-land, hash<> is called hash_compare<> (from xhash.h) */
#define hash hash_compare
В то время как glog компилируется, основное приложение дает мне неразрешенные ошибки внешних символов (как в dll, так и в статической версии).
1>main.obj : error LNK2019: 未解決の外部シンボル "void __cdecl google::InitGoogleLogging(char const *)" (?InitGoogleLogging@google@@YAXPBD@Z) が関数 _main で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル "public: __thiscall google::LogMessage::LogMessage(char const *,int)" (??0LogMessage@google@@QAE@PBDH@Z) が関数 _main で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル "public: __thiscall google::LogMessage::~LogMessage(void)" (??1LogMessage@google@@QAE@XZ) が関数 _main で参照されました。
Я компилирую как Win32.
Если я проверю папку отладки, она фактически содержит файл dll + lib или статический lib.
Я также пытался связываться с библиотекой вручную, не используя систему зависимостей Visual Studio, но это то же самое.
Я построил glog для MSVS2012 из транка (маленький патч, упомянутый в заголовке, уже представлен здесь, насколько я знаю), так что он работает для меня.
Похоже, отсутствует описание вашей зависимости от библиотеки glog.
Можете ли вы добавить специфичные для Windows
#pragma comment(lib, "path_to_glog_from_project_dir.lib")
к одному из файлов вашего проекта, например, непосредственно в main.cpp и протестируйте его.
Других решений пока нет …