것은 당신이 GCC를 사용하고 reference for linker options을 읽을 경우 당신은 외부 라이브러리와 연결하기위한 옵션에 알 수 있습니다 :
-L<directory>
이 옵션은 라이브러리 검색 경로에 <directory>
을 추가 링커를 알려줍니다 . 즉 링커에게 라이브러리 파일을 찾을 위치를 알려줍니다.
-l<name-of-lib>
이 옵션은 라이브러리와 연결하는 링커를 알려줍니다. POSIX 환경 (Linux, OSX, Cygwin 또는 MinGW를 사용하는 Windows)의 라이브러리는 libname-of-lib.a
과 같은 이름이지만 -l
옵션을 사용하면 lib
접두사 또는 .a
확장자를 사용할 필요가 없습니다. 또한 -l
옵션에 작은 문자 L (대문자 i 또는 숫자 1이 아님)에 유의하십시오.
요약하면 : 다른 디렉토리에서 라이브러리와 링크를이 같은 링크 : 당신이 -L
옵션 project1
에 대한 라이브러리가있는 디렉토리를 지정해야합니다 귀하의 경우에는
$ gcc <other flags> <object files> -o <executable> -L<directory> -l<library>
하고, -l
옵션의 경우 라이브러리의 기본 이름을 전달합니다.
당신이 라이브러리에 project1
을 설정하고, 직접 오브젝트 파일을 링크하지 않으려는 반면에 경우에, 그것은 좋은 너무입니다 :
$ gcc <flags> <object files of project1> <object files of project2> -o <executable>
오브젝트 파일은 물론 수 있습니다 전체 또는 상대 경로.
/
`-- home
`-- user
`-- myproject
|-- project1
`-- project2
는 그런 다음 project2
디렉토리에있는 경우
../project1/objectfile.o
처럼 project1
에서이 모든 오브젝트 파일에 액세스 할 수 있습니다에의 할 수 있습니다 당신은 다음과 같은 디렉터리 구조를 가질 경우, 예를 들어, 물론 Makefile에 위치해야합니다.
요아킴에 감사드립니다. 이것은 참으로 도움이되었습니다. :) – hld619