Я пишу простой проект makefile.Как связать объекты из разных директорий (работает ld)
Я пытаюсь построить программу в два этапа:
- исходных компиляции файлов и сохранять объектные файлы в другой каталог
- связывает объекты в исполняемый
рассмотреть что-то простой как:
all:
gcc -o ~/some_dir/main.o -c main.c
ld -o my_program main.o
проблема заключается в вызове directo ry не «~/some_dir», поэтому ld не находит объектный файл ... как я могу включить «some_dir» в путь поиска ld?
В более глобальной перспективе у меня есть объектные файлы в разных каталогах, и я бы хотел связать их все вместе, используя один файл команды компоновщика.
Спасибо.
Ум, указав полезный путь к объекту для связи? Как * else * вы бы это сделали? Но в любом случае лучше всего использовать 'gcc' в качестве драйвера компоновщика вместо прямого вызова компоновщика:' gcc -o my_program ~/some_dir/main.o'. –
Кроме того, вместо использования путей, привязанных к домашнему каталогу текущего пользователя ('~/some_dir'), было бы гораздо разумнее разместить построенные файлы в местах относительно рабочего каталога для сборки и найти исходные файлы относительно каталога содержащий Makefile. –