Вопрос новичка о библиотеках C - PullRequest
2 голосов
/ 03 февраля 2011

Запуск C и разработка под Windows XP ... Должны ли библиотеки, которые я включаю (если они есть), находиться в определенной директории? Или содержимое компьютера будет проиндексировано, чтобы найти их?

Спасибо

Ответы [ 4 ]

5 голосов
/ 03 февраля 2011

Они могут быть в любом каталоге и не будут проиндексированы. Вы можете передать список включаемых каталогов вашему компилятору, который будет искать заголовки в этих каталогах. Аналогично, вы можете передать список «библиотечных каталогов» вашему компоновщику, где будут искать файлы .lib. Особенности передачи этих параметров вашему компилятору или компоновщику зависят от того, какой компилятор или IDE вы используете.

3 голосов
/ 03 февраля 2011

Короткий ответ заключается в том, что вы можете просто поместить библиотеки (т.е. предполагаемые файлы DLL) в тот же каталог, что и исполняемый файл, и они будут найдены.

Длинный ответ действительно намного длиннеено сейчас вы можете сойти с рук, просто зная выше!

0 голосов
/ 03 февраля 2011

Обычно почти ничего о сторонних (или личных) библиотеках автоматически не обнаруживается инструментальными цепочками компилятора C.

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

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

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

0 голосов
/ 03 февраля 2011

Они могут находиться в любом каталоге, который вам нужен, компоновщик просто должен знать, где он находится, когда создается исполняемый файл. Если вы используете компилятор командной строки, такой как gcc, вы используете опцию, например "-L {directory}" и "-l {имя файла библиотеки}", чтобы указать, где искать библиотеки, которые вы хотите включить в ваш компилятор. Это может варьироваться в зависимости от каждого компилятора, поэтому вы должны посмотреть man-страницы / справку для каждого компилятора (но это довольно часто).

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