컴파일러가 -lz 플래그를 필요로하는 고대 GCC 버전을 개발자가 편안하게 사용하는 소스 패키지가 있습니다. 오브젝트 스펙 이전. 패키지는 매우 "branchy"이고 automake와 autoconf는 매우 "답답함"하므로 두 가지 질문이 있습니다.automake와 autoconf가 컴파일 라인 뒤에 -lz 플래그를 설정하도록 강제하고 .ac 파일을 변경하지 않고 수행하십시오.
첫 번째 질문은 autotools가 -lz 플래그를 뒤에 설정하도록 구성하는 방법입니다.
둘째, makefile.ac 및 configure.ac 파일을 사용하지 않고이 -lz 플래그를 강제로 설정할 수 있습니까? 이것은 내 소프트웨어 패키지가 아니기 때문에 항상 새 빌드를 수행 할 때마다이 파일을 편집하는 것은 단순히 옵션이 아닙니다.
오류가 발생하는 컴파일 행을 복사하여 끝에 -lz 및 -lxerces-c 플래그를 넣으면 작동한다는 점에 유의하십시오. 그래서 어떻게 든 autotools에서 이것을 변경해야합니다.
업데이트 : 그럼 난 어떻게 든
$ g++ line_contents -lz -lxerces-c
이 (오른쪽 디렉토리에있을 확인하는)와 심하게 구성된 라인 을 실행하여 그것을 해결하기 위해 관리 그리고 난 그냥 다시 만들어 실행하는 생각을했다
그래도 autotools를 사용하여 주문을 변경하는 방법에 대한 답을 얻는 것이 좋습니다.
설정시'LDFLAGS' 환경 변수를 설정 하시겠습니까? – arrowd
확실한 ./configure --help는 기본 설정을 덮어 쓰는 일련의 환경 변수를 나열하지만 LDFLAGS는 -lz 호출 순서가 아닌 사용자 정의 위치 만 설정하는 것처럼 보입니다. 그래서 내 libz가 기본 위치에 있지 않을 경우에만 유용 할 것입니다. – grokkaine
왜 링커 플래그 순서가 중요합니까? – arrowd