I'm trying to assemble a multi-module project.
visual 2012.
I connect the header files like this:
module.h
source code: module.cpp main.cpp
// Вот здесь правильно? Так сделано в прекомпилированном заголовке. module.cpp [[ include "module.h" ]] module.h [[ // Вот такие включения идут нормально #include <windows.h> #include <string> #include <iostream> //Но есть библиотека mpir. //И там есть код extern "C" { int __gmp_printf (const char *, ...); } //Функция __gmp_printf определена в .lib файле. #pragma comment(lib,"mpir.lib") // Дальше её вызываю struct class_ { class_() { __gmp_printf("text"); } }; Лезут ошибки libcmt.lib(invarg.obj) : error LNK2005: "void __cdecl _invalid_parameter(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned __int64)" (?_invalid_parameter@@YAXPEBG00I_K@Z) уже определен в LIBCMTD.lib(invarg.obj) 1>libcmt.lib(invarg.obj) : error LNK2005: "void __cdecl _invoke_watson(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned __int64)" (?_invoke_watson@@YAXPEBG00I_K@Z) уже определен в LIBCMTD.lib(invarg.obj) 1>libcmt.lib(invarg.obj) : error LNK2005: _call_reportfault уже определен в LIBCMTD.lib(invarg.obj) 1>libcmt.lib(invarg.obj) : error LNK2005: _get_invalid_parameter_handler уже определен в LIBCMTD.lib(invarg.obj) 1>libcmt.lib(invarg.obj) : error LNK2005: _initp_misc_invarg уже определен в LIBCMTD.lib(invarg.obj) 1>libcmt.lib(invarg.obj) : error LNK2005: _invalid_parameter уже определен в LIBCMTD.lib(invarg.obj) 1>libcmt.lib(invarg.obj) : error LNK2005: _invoke_watson уже определен в LIBCMTD.lib(invarg.obj) 1>libcmt.lib(invarg.obj) : error LNK2005: _set_invalid_parameter_handler уже определен в LIBCMTD.lib(invarg.obj) 1>libcmt.lib(invarg.obj) : error LNK2005: __pInvalidArgHandler уже определен в LIBCMTD.lib(invarg.obj) 1>LIBCMTD.lib(crt0init.obj) : warning LNK4098: библиотека по умолчанию "libcmt.lib" противоречит использованию других библиотек; используйте параметр /NODEFAULTLIB:library Пробовал включение .lib класть в module.cpp и main.cpp: ничего не помогает. class_ вынести в main.cpp тоже самое. ]] main.cpp [[ #include "module.h" class_ d; int main() { return 1; } ]]
#pragma comment(lib,"mpir.lib")
? Judging by the conclusion, it is already connected. - KoVadim