компиляция gcc и ошибка файла - PullRequest
0 голосов
/ 02 октября 2011

У меня есть каталог с именем "aos", в котором у меня есть результаты make, а именно .o файл и .a файл.

Файл моего теста в каталоге «test1», который находится в каталоге «aos».

Я нахожусь в каталоге test1, в котором есть файл с именем main.c (это файл, который я хочу выполнить). Я попытался скомпилировать файл, дав команду

 gcc -Wall -pedantic -I ../gtthreads.c -o main main.c ../gtthreads.a

Но я получаю эти ошибки:

../gtthreads.c is not a directory  
../gtthreads.a is not a directory

Что я здесь не так делаю? Как мне обратиться к файлам .a и .c, которые находятся в каталоге "aos"?

1 Ответ

4 голосов
/ 02 октября 2011

Переключатели -I и -L используются для добавления каталогов в пути поиска #include и компоновщика соответственно.Поэтому, если у вас есть заголовки в родительском каталоге, но вы включаете их без относительных путей в свой код, вы можете использовать:

-I..

, что заставит gcc искать в родительском каталоге заголовки.

Если вы хотите скомпилировать main.c и gtthreads.c из родительского каталога в исполняемый файл, вы можете:

gcc -Wall -pedantic -I.. ../gthreads.c main.c -o main

Если вы хотите скомпилировать main.c и связать его с gthreads.a файл в родительском каталоге, просто используйте:

gcc -Wall -pedantic -I.. -o main main.c ../gtthreads.a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...