C ++: как добавить внешние библиотеки - PullRequest
2 голосов
/ 20 июня 2010

Я пытаюсь добавить SVL в свой проект.

Без этого я получаю сотни ошибок (неопределенная ссылка ...).После добавления -lSVL все ошибки исчезли, но gcc говорит: «не могу найти -lSVL».Все остальное (SDL, SDL_TTF, SDL_Mixer ...) работает нормально.

Ответы [ 2 ]

3 голосов
/ 20 июня 2010

Вы должны сообщить gcc путь, по которому установлен libsvl.a, например:

gcc -lsvl -L/my/path/

Также обратите внимание на случай, если вы работаете в Linux («SVL» отличается от «svl»).«).

1 голос
/ 20 июня 2010

Есть две части для добавления внешней библиотеки; вам нужно указать компилятору [1] , где найти описание API (т. е. файлы заголовков), и указать компоновщику где найти реализацию API (т. е. файл (ы) библиотеки).

Список возможных расположений заголовков задается путем включения, который для традиционного компилятора добавляется к параметру -I. Для добавления требуется имя каталога; каталог - это еще одно место, где компилятор будет искать заголовочные файлы.

Список возможных местоположений библиотеки задается путем ссылки. Это так же, как путь включения, но добавляется с помощью -L. Обратите внимание, что вы также можете (по крайней мере, обычно) указывать полный путь к библиотеке непосредственно в командной строке, но это не рекомендуется, поскольку в нее встроено больше информации, чем действительно необходимо.

Синтаксис MSVC очень похож на IIRC.

Если вы используете IDE, вам, вероятно, придется установить эти параметры в параметрах проекта, но, если вы помните, что вам нужно задать пути как для включения, так и для библиотеки, вы сможете найти свой путь через.

[1] Строго говоря, вы говорите препроцессору, но вывод препроцессора практически всегда направлен прямо в компилятор.

...