Я получаю ошибку
mongoclient.lib(assert_util.obj): error LNK2005: void __cdecl mongo::uasserted(...) already defined in someOwnFile.obj
при связывании, наряду с mongo::msgasserted
и mongo::msgasserted
.
В someOwnFile.cpp
меня есть
#include <string>
#ifdef WIN32
// Needed for mongo BSON.
#pragma warning(push)
#pragma warning(disable: 4800)
#pragma warning(disable: 4244)
#pragma warning(disable: 4267)
#define _CRT_SECURE_NO_WARNINGS 1
#endif
#include <mongo/bson/bson.h>
#ifdef WIN32
#pragma warning(pop)
#endif
// ...
Почему я получаю сообщение об ошибке? Как я могу это исправить?
Кажется, что у него есть проблемы с включением только этого файла.
Теперь я делаю это:
#ifdef WIN32
// Mongo uses boost.filesystem. Include it here to force to link it in (via its pragma lib).
#include <boost/filesystem.hpp>
// Needed for mongo BSON.
#pragma warning(push)
#pragma warning(disable: 4800)
#pragma warning(disable: 4244)
#pragma warning(disable: 4267)
#define _CRT_SECURE_NO_WARNINGS 1
#endif
#include <mongo/client/dbclient.h>
#include <mongo/client/dbclient_rs.h>
#include <mongo/client/gridfs.h>
#ifdef WIN32
#pragma warning(pop)
#endif
И это работает.