Мне нужно связать статическую библиотеку с данным объектным файлом. У меня нет исходного кода этого файла и никакого влияния на него.Ошибка ссылки Visual Studio 2015 LNK2005
При использовании Visual Studio 2010 я могу создать библиотеку и связать ее с данным файлом.
На другой машине я только VS 2015 Когда я строить и связать свой C-код для данной Lib я получаю следующее сообщение об ошибке:
LIBCMT.lib(vfprintf.obj) : error LNK2005: __vfprintf_l already defined in c_fun.obj
LIBCMT.lib(printf.obj) : error LNK2005: _printf already defined in c_fun.obj
Для целей тестирования я использую следующий упрощенный код:
#include <stdio.h>
void c_fun(double C_IN, double *C_OUT)
{
*C_OUT = C_IN * 2.0;
printf("Hallo C!\n");
}
Когда я воздаю PRINTF линию, то я могу успешно связать LIB созданный с VS2015, но мне нужно PRINTF заявление для визуализации целей.
Чтобы скомпилировать мою библиотеку, я использую те же параметры в командной строке. Есть ли опция компилятора или компоновщика для создания совместимой с VS 2010 библиотеки?
Когда я использую DUMPBIN/все для обоих LIBS, я получаю следующие результаты:
Lib, созданные с помощью VS2010:
2 public symbols
BC _F_FUN
310 _c_fun
Lib, созданный с VS2015: 7 публичных символов
1DE _F_FUN
432 [email protected][email protected]@[email protected]
432 ___local_stdio_printf_options
432 [email protected]
432 __vfprintf_l
432 _c_fun
432 _printf
Я бы ожидал получить одинаковые символы с обеими версиями.
опции компилятора я использую оба раза «/ MT/W3/EHsc/с»