линкер ругается
Linking...
LIBCMTD.lib(_file.obj) : error LNK2005: ___initstdio already defined in LIBCD.lib(_file.obj)
LIBCMTD.lib(_file.obj) : error LNK2005: ___endstdio already defined in LIBCD.lib(_file.obj)
LIBCMTD.lib(_file.obj) : error LNK2005: __cflush already defined in LIBCD.lib(_file.obj)
LIBCMTD.lib(_file.obj) : error LNK2005: __iob already defined in LIBCD.lib(_file.obj)
LIBCMTD.lib(osfinfo.obj) : error LNK2005: __alloc_osfhnd already defined in LIBCD.lib(osfinfo.obj)
LIBCMTD.lib(osfinfo.obj) : error LNK2005: __set_osfhnd already defined in LIBCD.lib(osfinfo.obj)
LIBCMTD.lib(osfinfo.obj) : error LNK2005: __free_osfhnd already defined in LIBCD.lib(osfinfo.obj)
LIBCMTD.lib(osfinfo.obj) : error LNK2005: __get_osfhandle already defined in LIBCD.lib(osfinfo.obj)
LIBCMTD.lib(osfinfo.obj) : error LNK2005: __open_osfhandle already defined in LIBCD.lib(osfinfo.obj)
LINK : warning LNK4098: defaultlib "LIBCMTD" conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:library
Debug/Engine3.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
Engine3.exe - 10 error(s), 2 warning(s)
Как с этим бороться?
1. Какие-то объектные коды или библиотеки имеют разные режимы threading. Например, вы все делаете для single threading, но подключаете библиотеку (для чтения jpeg'ов), которая скомпилирована как mutithreaded.
2. В разных объектных модулях или библиотеках есть функции с одинаковыми именами.
Это наиболее вероятные причины. Есть ещё и другие. Если проблема останется, подумаем.
PS. Можно задавить эту ошибку с помощью опций линкера /NOD и /NOE, но работать тогда имеет право неустойчиво. Не советую.