Ошибки 'неразрешенный внешний символ' в студии 2015

Рейтинг: 1Ответов: 1Опубликовано: 24.04.2015

После того как поставил обновленную visual studio 2015 preview ultimate. Появились ошибки странные в проекте. До этого была 2013, там этот же код компилируется нормально и правильно.

  1. С чем это может быть связано?
  2. В 2015 добавили что то, что меняет объявление таких функций как sprintf, sscanf?
1>liblpsolve55d.lib(lp_presolve.obj) : error LNK2001: неразрешенный внешний символ "__iob_func"
1>liblpsolve55d.lib(lp_rlp.obj) : error LNK2001: неразрешенный внешний символ "__iob_func"
1>liblpsolve55d.lib(mmio.obj) : error LNK2001: неразрешенный внешний символ "__iob_func"
1>liblpsolve55d.lib(lusol.obj) : error LNK2001: неразрешенный внешний символ "__iob_func"
1>liblpsolve55d.lib(lp_lib.obj) : error LNK2001: неразрешенный внешний символ "__iob_func"
1>liblpsolve55d.lib(lp_MPS.obj) : error LNK2001: неразрешенный внешний символ "__iob_func"
1>liblpsolve55d.lib(lp_wlp.obj) : error LNK2001: неразрешенный внешний символ "__iob_func"
1>liblpsolve55d.lib(lp_report.obj) : error LNK2001: неразрешенный внешний символ "__iob_func"
1>liblpsolve55d.lib(lp_MPS.obj) : error LNK2019: ссылка на неразрешенный внешний символ sscanf в функции scan_lineFIXED
1>liblpsolve55d.lib(mmio.obj) : error LNK2001: неразрешенный внешний символ "sscanf"
1>liblpsolve55d.lib(lp_MPS.obj) : error LNK2019: ссылка на неразрешенный внешний символ _vsnprintf в функции write_data
1>liblpsolve55d.lib(lp_wlp.obj) : error LNK2001: неразрешенный внешний символ "_vsnprintf"
1>liblpsolve55d.lib(lp_report.obj) : error LNK2001: неразрешенный внешний символ "_vsnprintf"
1>liblpsolve55d.lib(lp_report.obj) : error LNK2019: ссылка на неразрешенный внешний символ vfprintf в функции report
1>liblpsolve55d.lib(lusol.obj) : error LNK2001: неразрешенный внешний символ "vfprintf"
1>liblpsolve55d.lib(mmio.obj) : error LNK2019: ссылка на неразрешенный внешний символ fscanf в функции mm_read_unsymmetric_sparse
1>liblpsolve55d.lib(lusol.obj) : error LNK2019: ссылка на неразрешенный внешний символ vsprintf в функции LUSOL_report

Ответы

▲ 2Принят

Судя по ошибкам (не находятся стандартные функции наподобие sscanf), ваша библиотека liblpsolve55d.lib скомпилирована под старую студию. Попробуйте перекомпилировать библиотеку.

Библиотеки, собранные разными версиями компилятора, к сожалению, не совместимы. Проблема в том, что они линкуются с версией рантайма, поставляемой с Visual Studio, а рантайм-библиотеки разных версий несовместимы. (Например, потому, что внутренние функции определены по-разному.)