간단한 makefile 프로젝트를 작성하고 있습니다.다른 디렉토리에서 객체를 연결하는 방법 (ld 실행)
내가 두 단계에서 프로그램을 구축하기 위해 노력하고있어 :
뭔가를 생각하는 실행 내로 다른 디렉토리에
- 컴파일 소스 파일 저장 다음과 같이 간단하게 :
all: gcc -o ~/some_dir/main.o -c main.c ld -o my_program main.o
문제는 직접 호출입니다. ry가 "~/some_dir"이 아니므로 ld가 오브젝트 파일을 찾지 못했습니다 ... 어떻게 ld 검색 경로에 "some_dir"을 포함시킬 수 있습니까?
더 많은 글로벌 관점에서 볼 때 여러 디렉토리에 개체 파일이 있으며 단일 링커 명령 파일을 사용하여 개체 파일을 모두 연결하고 싶습니다.
감사합니다.
음, 링크 할 개체에 사용할 수있는 경로를 지정 하시겠습니까? 어떻게 * 다른 * 당신은 그것을 할 것입니까? 그러나 주위에 어떤 식 으로든 일반적으로 링커를 직접 호출하는 대신 gcc를 링커 드라이버로 사용하는 것이 가장 좋습니다 : gcc -o my_program ~/some_dir/main.o'. –
또한 현재 사용자의 홈 디렉토리 ('~/some_dir')에 연결된 경로를 사용하는 대신 빌드를위한 작업 디렉토리에 상대적인 위치에 빌드 파일을 넣고 디렉토리에 상대적인 소스 파일을 찾는 것이 훨씬 현명합니다 Makefile을 포함하고있다. –