2010-06-13 3 views
0

주어진 소스 코드 (또는 객체) 파일 (C 또는 C++ 프로그램 용)에 링크해야하는 라이브러리 목록을 출력하는 프로그램을 작성하고 싶습니다.연결할 라이브러리를 찾는 방법은 무엇입니까? 또는 * -config (sdl-config, llvm-config 등)를 어떻게 만들 수 있습니까?

* nix에는 sdl-config 및 llvm-config와 같은 유용한 도구가 있습니다. 그러나 내 프로그램이 Windows에서도 작동하기를 바랍니다.

사용법 :

get-library-names -l /path/to/lib a.cpp b.cpp c.cpp d.obj 

그런 다음, get-library-names는 a.cpp, b.cpp, c.cpp 및 d.obj에서 호출되는 함수 이름의 목록을 얻을 것이다. 그리고이 파일은 /path/to/lib 디렉토리에있는 모든 라이브러리 파일을 검색하고 제대로 링크해야하는 라이브러리를 나열합니다.

이미 작성된 도구가 있습니까? 그런 도구를 쓰는 것이 사소하지 않습니까? 어떤 라이브러리를 링크해야하는지 어떻게 알 수 있습니까?

감사합니다.

답변

0

예, 'pkg-config --cflags'를 실행하여 컴파일러 플래그를 얻거나 'pkg-config --libs'를 실행하여 링커 라이브러리를 가져올 수있는 pkg-config 파일을 만들 수 있습니다.

http://pkg-config.freedesktop.org/wiki/

당신이 리눅스에 있다면, 당신이 모델로 사용할 수있는 파일 .PC 몇 가지 예를 찾을 수는/usr/lib 디렉토리/pkgconfig를 조사하려고합니다. Windows에서도 pkg-config를 사용할 수 있지만 그와 함께 제공되는 것은 아닙니다.

+1

플래그를 하드 코딩해야합니다. 예를 들어 .pc 파일에서 Libs : -lfoo -lbar ... 소스 코드와 공유 라이브러리 파일을 통과하여 라이브러리 이름을 가져올 수 있는지 궁금합니다. – numeric

관련 문제