2013-08-20 3 views

답변

3

이 모든 LIBS 플래그의 병합을 사용하지 qmake를 말해)는 :: 물건을 필요로 :

CONFIG += no_lflags_merge

그러나,이 정리되지 모든 중복 라이브러리가 발생합니다. 이것은 실제로는 중요하지 않습니다.

또는 qmake가 중복 라이브러리를 찾지 못하도록 트릭 할 수 있습니다. 그것은 단지 문자열을 일치 정말 도서관 플래그를 구문 분석하지 않기 때문에, 당신은 할 수 있습니다 :

LIBS += -lA -lB -l A -lC -lD

주에게 -lA-l A의 차이를. 이것은 컴파일러가 qmake가 수행하지 않는 동안 컴파일러가 실제 명령 행 인자 분석을 수행하기 때문에 qmake가 컴파일러의 관점에서 볼 때 동일하다고 판단합니다.

+0

생성되는 내용은 다음과 같습니다.'g ++ -lA -lB -lA -Wl, -O1 -Wl, -rpath,/opt/Qt5.1.0/5.1.0/gcc -Wl, -rpath,/opt/Qt5.1.0/5.1.0/gcc/lib -o TableView main.o mainwindow.o customsqlmodel.o model.o helper.o cdrlistmodel.o moc_mainwindow.o moc_customsqlmodel.o -lC -lD -L/opt/Qt5.1.0 // 5.1. 0/gcc/lib -lQt5Widgets -lQt5Sql -lQt5Gui -lQt5Core -lGL -lpthread' – Meysam

+0

'-lA -lB -lA'가'g ++'바로 뒤에 있기 때문에 작동하지 않습니다. 만약 내가'-lC -lD' 전에 수동으로 옮기면, 프로그램은 성공적으로 컴파일됩니다 : 'g ++ -Wl, -O1 -Wl, -rpath,/opt/Qt5.1.0/5.1.0/gcc -Wl, -rpath,/opt/Qt5.1.0/5.1.0/gcc/lib -o TableView main.o mainwindow.o customsqlmodel.o model.o helper.o cdrlistmodel.o moc_mainwindow.o moc_customsqlmodel.o -lA -lB -lA -lC ​​-ID -L/opt/Qt5.1.0 // 5.1.0/gcc/lib -lQt5Widgets -lQt5Sql -lQt5Gui -lQt5Core -lGL -lpthread' – Meysam

+0

해결 방법은 없습니까? – Meysam

0

무엇에 대해 :

QMAKE_LFLAGS += -(-lA -lB -) 

?

편집 : 당신은 어떻게이 구문이하는 것은 그들이 (A : 물건 B를 필요로 다소 재귀 경우에도, 라이브러리 사이의 모든 depencies를 해결하는 것입니다

QMAKE_LFLAGS += -(-lA -lB -lC -lD -) 

시도 않았다 :: 물건 C를 필요로 :: 물건

+0

'C'와'D' 라이브러리도 포함시켜 주시겠습니까? – Meysam

+0

이 오류가 발생합니다 :'/ bin/sh : 구문 오류 : "(예기치 않은 make : *** [TableView] 오류 2' – Meysam

+0

그리고 이것은 구문 오류로 실행 된 마지막 명령입니다 :'g ++ - -lb, -lpath, -rpath,/opt/Qt5.1.0/5.1.0/gcc -Wl, -rpath,/opt/Qt5.1.0/5.1.0/gcc/lib -o TableView main .o mainwindow.o customsqlmodel.o model.o helper.o cdrlistmodel.o moc_mainwindow.o moc_customsqlmodel.o -L/opt/Qt5.1.0 // 5.1.0/gcc/lib -lQt5Widgets -lQt5Sql -lQt5Gui -lQt5Core -lGL -lpthread' – Meysam