ошибка LNK2005: void __cdecl mongo :: uasserted (…) уже определен

0

Я получаю ошибку

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

// ...

Почему я получаю сообщение об ошибке? Как я могу это исправить?

Теги:
visual-studio
visual-studio-2012

1 ответ

0
Лучший ответ

Кажется, что у него есть проблемы с включением только этого файла.

Теперь я делаю это:

#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

И это работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню