2015-09-29 2 views
-1

Я знаю, что многие люди спрашивали об этой ошибке и доверяют мне, что я прочитал ВСЕ их и выполнил все шаги! Но я все еще получаю неразрешенную ошибку внешнего символа.ошибка LNK2019 неразрешенный внешний символ при попытке связать dll

Я пытаюсь использовать библиотеку DLL из lp_solve (линейный пакет программ) в моем C++ кода в визуальной студии 2012 Сообщение об ошибке я получаю: Ошибка 80 Ошибка LNK2019: неразрешенный внешний символ _make_lp @ 8 ссылка в функции «недействительным __cdecl my_solve (бла бла)

функция make_lp() от пакета lp_solve, и я звоню его от my_solve() в моем коде. Это сообщение об ошибке появляется для каждого решателя функция, которую я вызываю. Кажется, что компоновщик просто не мог найти никакой реализации этих функций.

Я сделал следующие

  1. положить #include «lp_lib.h» в моем исходном коде
  2. поставил .dll, .h и .lib файлы из пакета lp_solve в рабочем каталоге и
  3. добавлен путь под Linker: Общие: Дополнительные библиотеки.
  4. добавил LIB под Linker: Input: Дополнительная зависимость

Что случилось? Спасибо за помощь!

+1

Не могли бы вы высказать полное сообщение об ошибке? –

+0

только что обновлено с сообщением об ошибке. – forrest

ответ

1

Проблема я была решена после того, как что я загрузил пакет WIN64 для lp_solve, но моя визуальная студия использует WIN32 в качестве платформы сборки (хотя моя машина - x86_64).

0

Использование extern "C" может быть полезным, а в том числе lp_lib.h в вашем .cpp следующим образом:

extern "C" 
{ 
#include "lp_lib.h" 
} 

Для получения дополнительной информации, пожалуйста, проверьте эту ссылку: http://www.geeksforgeeks.org/extern-c-in-c/

+0

Это не помогает в моем случае. – forrest

Смежные вопросы