2011-04-29 36 views
19

thể trùng lặp:
Configuring the GCC compiler switches in Qt, QtCreator, and QMakeCXXFLAGS sửa đổi From File .pro My

Tôi muốn sử dụng -O1 thay vì -O 2 trong makefile của tôi (CFLAGSCXXFLAGS) cho Linux build của tôi , nhưng sự hiểu biết của tôi về cách các makefiles này được tạo ra dựa trên tệp .pro có phần thiếu. Điều này là do phiên bản Qt được kết hợp với phiên bản G + + mà tôi đang sử dụng có tính không ổn định khi có -O2.

Hiện nay, tôi đang chạy một kịch bản thay thế, sau khi tôi chạy qmake, mà thực hiện điều này:

sed -i 's/\-O2/\-O1/g' AllProjects/Makefile.Release 

Đây là một giải pháp ổ chuột. Một giải pháp tốt hơn nhiều là sửa đổi tệp .pro bằng cách nào đó để truyền theo các chỉ thị này. Tôi không chắc chắn làm thế nào CFLAGS và CXXFLAGS đang được tạo ra mặc dù, và tôi figured tôi sẽ yêu cầu StackOverflow tuyệt vời.

Tôi đã thử đi qua một

linux-g++-{ 
     CFLAGS += -O1 
     CXXFLAGS += -O1 
     CONFIG += -O1 
} 

mà không làm việc.

+2

1 một "giải pháp ghetto" – sehe

+0

linux-g ++ - { QMAKE_CXXFLAGS + = -O1 } không hoạt động, linux-g ++ - { QMAKE_CXXFLAGS_RELEASE + = -O1 } cũng không hoạt động, tôi nên đề cập rằng tôi đã thử điều này trong giải pháp của mình. –

+0

Tôi nghĩ rằng kiểm tra của tôi là một chút quá chặt chẽ quá, vì nó có vẻ như QMAKE_CXXFLAGS NÊN làm việc. –

Trả lời

24

Bạn đã rất thân thiết. Những gì bạn muốn là:

QMAKE_CXXFLAGS += -O1

Nếu bạn muốn áp dụng cờ để chỉ việc phát hành xây dựng, sau đó bạn có thể sử dụng này:

QMAKE_CXXFLAGS_RELEASE += -O1

Bạn cũng có thể muốn thay đổi tình trạng của bạn để linh hoạt hơn một chút. Nói tóm lại, một cái gì đó như thế này:

*-g++* { 
    QMAKE_CXXFLAGS += -O1 
} 

thêm thông tin trong tài liệu hướng dẫn ở đây: http://qt-project.org/doc/qt-5.0/qtdoc/qmake-variable-reference.html#qmake-cxxflags

+0

Cảm ơn, lá cờ của tôi cũng C tooNG quá chặt chẽ, chính xác như bạn đã gợi ý. –

+1

@Brian: yea, bạn có dấu gạch ngang dấu gạch ngang đã giết chết nó. –

+1

Nếu cờ bạn đang cài đặt cũng liên quan đến liên kết, bạn cũng sẽ cần phải đặt ví dụ. QMAKE_LFLAGS + = -m32 – iforce2d

Các vấn đề liên quan