2012-07-26 2 views
1

와 연결 파일은 내가 알아 C 하드 방법 책 I 라이브러리 파일 이름의 마지막 매개 변수로 '/ liblcthw.a를 구축'을 통과해야GCC와 CFLAGS

에서 프로그램을 실행하려합니다. 우분투에

않아요 일 :

의 gcc -g -O2 -Wall -Wextra -Isrc -rdynamic -DNDEBUG 구축/liblcthw.a 시험/list_tests.c -o 테스트/list_tests 예를 들어

우분투에

작품 :

의 gcc -g -O2 -Wall -Wextra -Isrc -rdynamic -DNDEBUG 테스트/list_tests.c -o 테스트/list_tests 구축/liblcthw.a

방법 D o Makefile에서 이것을 처리합니까? CFLAGS는 소스 파일명 앞에 추가 만하면 작동하지 않습니다. 명령 끝에 CFALGS가 라이브러리 파일 이름을 추가하게하려면 어떻게해야합니까?

답변

3

CFLAGS는 C 컴파일러의 플래그입니다. 라이브러리는 일반적으로 LDLIBS라는 변수에 저장됩니다. LDLIBS = build/liblcthw.a를 설정하고 이것이 작동하는지 확인하십시오.

+1

+1. automake 말투에서, LIBS 또는 LDADD는 또한 일반적인 용어입니다. – thiton

1

명령 줄에서 소스와 라이브러리의 순서가 잘못되어 첫 번째 호출이 성공하지 못합니다. 올바른 순서는 소스 파일, 오브젝트 파일, 정적 라이브러리와 동적 라이브러리 순입니다.

관련 문제