Библиотека C ++ не связывается в конфигурации выпуска (VS2010) - PullRequest
0 голосов
/ 13 декабря 2010

Я пытался заставить статические библиотеки (.lib файлы) работать в VS2010, и у меня это отлично работает в конфигурации отладки. Однако, когда я пытаюсь скомпилировать его в конфигурации выпуска, я получаю ошибку error C1083: Cannot open include file: 'Library.h': No such file or directory.

Вот текущий сценарий:

  • У меня есть файл .lib и файл .h в папке на рабочем столе, которая называется Static Library.
  • У меня есть переменная среды INCLUDE, указанная на вышеупомянутую папку (поэтому я могу использовать #include <Library.h>).
  • У меня есть переменная среды LIB, также указанная на вышеупомянутую папку.
  • Я добавил файл .lib в качестве дополнительной зависимости и установил каталог для дополнительных зависимостей.

Мой исходный код для тестовой программы выглядит так:

#include <iostream>
#include <Windows.h>

#include <Library.h>

int main()
{
    std::cout << Library::GetValue(); // Returns 123.
    Sleep(10000);
    return 0;
}

Что я мог делать неправильно?

1 Ответ

1 голос
/ 13 декабря 2010

Не уверен насчет VS2010 ... но режимы отладки и выпуска, вероятно, имеют разные настройки библиотеки ...

Вы можете сообщить компилятору о связывании через код, указав следующее

#pragma comment(lib, "library.lib") // no ; is needed

Это сделает ссылку как в отладке, так и в релизе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...