Многократно определенный стандартный распределитель - PullRequest
0 голосов
/ 16 августа 2011

Я пытаюсь скомпилировать C ++ DLL с VC ++ 2008. Я уже скомпилировал его правильно с VC ++ 2010, но с VC ++ 2008 я получаю следующую ошибку:

1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: unsigned short * __cdecl std::allocator<unsigned short>::allocate(unsigned __int64)" (?allocate@?$allocator@G@std@@QEAAPEAG_K@Z) already defined in cuda.obj
1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: unsigned short * __cdecl std::allocator<unsigned short>::allocate(unsigned __int64)" (?allocate@?$allocator@G@std@@QEAAPEAG_K@Z) already defined in cuda.obj

cuda.obj компилируется с использованием nvcc, но, насколько я могу судить, я дал nvcc те же параметры компилятора, что и для других файлов.

Что я могу сделать и откуда может появиться эта ошибка?

1 Ответ

1 голос
/ 18 августа 2011

Убедитесь, что вы используете одну и ту же библиотеку времени выполнения, посмотрите этот ответ , чтобы узнать, как настроить проекты.В частности, убедитесь, что вы используете / MTd как для правила сборки CUDA, так и для стандартной сборки C / C ++ (или /MT).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...