Внешняя библиотека Visual Studio 17 C ++ Link (ускоренная установка) - PullRequest
0 голосов
/ 05 октября 2018

Я установил внешние библиотеки и не могу связать их.

Я щелкаю правой кнопкой мыши на Project и нажимаю Properties на всплывающей подсказке.Я настраиваю каталог библиотеки в соответствии с библиотекой, которую я хочу использовать.

Страницы свойств проекта> VC ++> Библиотечные каталоги _ Добавить каталоги - [добавить правильный каталог с [библиотечным_имением] .lib в нем]

Страницы свойств проекта> Linker> Input> Дополнительные зависимости - [add [имя_библиотеки] .lib в списке (w ';')]

Все в порядке, но когда я использую директиву #include, загружаю [my_include] .hpp говорит "не могу найти источник".Но почему он просто не находит библиотеку?Почему поиск выполняется по источнику?

Сборка завершается успешно, пока не требуется код, который требует библиотеку.Итак, зависимость встречается.Что я делаю не так?

Нужно ли делать исходники?Я бы предпочел просто использовать библиотеку.

добавить: Как вы отслеживаете сборку в Visual Studio C ++.В Linux вы можете отслеживать все это, если хотите.

еще одно добавление: на случай, если вам интересно, есть настройки файла журнала сборки в

Сервис -> Параметры ->Проекты и решения -> MSBuild ...

для проверки.

программа-песочница

#include <iostream>
// squiggly under next line's include
#include <boost/optional.hpp>

int main()
{
    std::cout << "Hello World!\n"; 
}

Проект -> Страницы свойств -> C / C ++ -> Общие ->Дополнительные каталоги включения _ установлены в _ C: \ local \ boost_1_68_0;% (AdditionalIncludeDirectories)

, где boost_1_68_0 - это моя установка библиотеки повышения.

Нет проблем с подключением, но я хочу убедиться, что подключениетоже работает.

1 Ответ

0 голосов
/ 05 октября 2018

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

На той же странице настроек проекта, в которой вы добавили каталог библиотеки.также есть строка для включаемых путей, добавьте каталог, в котором находятся файлы .h для кода, который вы хотите использовать.Убедитесь, что в каталоге, указанном вами для поиска в библиотеке, действительно содержатся файлы .lib, а в каталоге, добавленном для путей включения, содержатся файлы .h (или .hpp или .hxx)

Если после «нерешенных внешних символов» появляются ошибки послевключаемые файлы найдены компилятором, который вам, вероятно, понадобится для добавления фактических библиотечных файлов (аналогично директивам #include, но не совсем так), с помощью Visual C ++ это можно сделать с помощью директив #pragma comment (lib, "") или путем добавления файлов.в Линкер-> Ввод-> Строка дополнительных зависимостей в настройках проекта.

...