Member 3018373 Ответов: 2

Как указать расположение библиотеки и заголовочных файлов в MS visual studio community 2015


Я пишу очень простую программу в MS Visual Studio Community 2015, которая использует cURL. cURL устанавливает заголовочные файлы здесь:
C:\Program файлы (x86)\CURL\include\curl

Немного неловко, но я не могу понять, почему MS Visual Studio не может найти include file curl.h, который находится в этом каталоге.

Я включил этот путь в:
C/C++ / General | Additional Include files

У моего stadfx. h есть линия:
#include <curl.h>

но я получаю эту ошибку при компиляции:
фатальная ошибка C1083: не удается открыть включаемый файл: 'curl. h': нет такого файла или каталога

Проект компилируется нормально, когда я меняю строку в stadfx. h на:
#include "C:\Program Files (x86)\CURL\include\curl\curl.h"

Я мог бы просто пойти с этим, но у меня есть аналогичная проблема с библиотечными путями. Я хочу связаться с libcurl_imp. lib, который находится здесь:
C:\Program файлы (x86)\CURL\lib

Я включил этот путь в:
Компоновщик / Общие / Дополнительные Каталоги Библиотек

и я добавил libcurl_imp. lib в:
Компоновщик / Ввод / Дополнительные Зависимости

но я получаю неразрешенные внешние данные для всех вызовов функций LIBCURL, которые я делаю.

Предложения приветствуются!

Спасибо

Что я уже пробовал:

Я также попытался включить путь в:
Каталоги VC++ / Include каталоги

[no name]

Это может иметь значение: http://www.codeproject.com/Tips/588022/Using-Additional-Include-Directories

2 Ответов

Рейтинг:
1

Jochen Arndt

Для одного приложения (единственного приложения, использующего эти зависимости) добавьте свойства в свой проект:

C++ - General - Дополнительные Каталоги Include: "C:\Program файлы (x86)\CURL\include"
Компоновщик-Общие Сведения-Дополнительные Каталоги Библиотек: "C:\Program файлы (x86)\CURL\lib"

Включите заголовочные файлы в исходные файлы, как обычно.

Для связи с дополнительными библиотеками у вас есть два варианта:


  1. Добавьте имена в настройки проекта по адресу Компоновщик-Ввод-Дополнительные Зависимости
  2. Импортируйте библиотеку в один из ваших исходных файлов с помощью прагмы комментарий (C/C++)[^] заявление:
    #pragma comment(lib, "lib-name")


Member 3018373

Спасибо Йохен, но у меня уже есть пути, заданные в свойствах проекта, и библиотека добавлена точно так же, как вы описали (см. мой оригинальный пост). Приятно сознавать, что я ничего не упустил!

Интересно, что я получил проект для сборки с использованием этой прагмы:
#Pragma комментарий(lib, то "файлы C:\\Program (х86)\\завиток\\Либ\\libcurl_imp.Либ")

Хотя я действительно не понимаю, почему он не работает с настройками свойств.

Jochen Arndt

Значит, теперь он работает для включаемых файлов с дополнительным путем?

Для компоновщика используйте опцию /VERBOSE:LIB (см. https://msdn.microsoft.com/en-us/library/wdsk6as6.aspx).
Он будет отображать информацию о процессе поиска библиотеки и должен помочь выяснить, где находится проблема.

Рейтинг:
1

KarstenK

Вы на правильном пути, но, похоже, используете не ту библиотеку.

Взгляните на дискуссию по адресу сайте StackOverflow потому что они используют antoher и дополнительные библиотеки и на оригинальный пример кода из curl.


Member 3018373

Спасибо за ответ, но я думаю, что у меня есть правильная библиотека, потому что я могу заставить ее построить с помощью этой прагмы:
#Pragma комментарий(lib, то "файлы C:\\Program (х86)\\завиток\\Либ\\libcurl_imp.Либ")

Хотя я действительно не понимаю, почему он не работает с настройками свойств.