sinalizadores de compilação de mudança em Qt sob Mac OS X?
Pergunta
Eu instalei Qt para Mac, e estou a compilar meu projeto de Qt após adicionar no arquivo .pro
CONFIG(release, debug|release):QMAKE_CXXFLAGS += -O3 -fomit-frame-pointer
para otimizar a velocidade.
No entanto, eu sempre ver que o comando onde g ++ é executado, inclui -Os, que otimiza para o tamanho. Eu gostaria de removê-lo.
Eu tentei várias abordagens, como
CONFIG(release, debug|release):QMAKE_CFLAGS_RELEASE -= -Os
CONFIG(release, debug|release):QMAKE_CXXFLAGS -= -Os
e
CONFIG(release, debug|release):QMAKE_CXXFLAGS = -O3 -fomit-frame-pointer
CONFIG(release, debug|release):QMAKE_CFLAGS_RELEASE = -O3 -fomit-frame-pointer
(no +)
Mas nada. -Os sempre aparecem.
Como posso mudar isso?
Eu encontrei o arquivo qmake.conf sob /usr/local/QT4.5/mkspecs. Ele inclui um mac-g arquivo conf ++, mas não posso mudá-lo, e chmod não funciona:. Chmod:. Mac-g ++ conf: Operação não permitida
Todas as idéias?
Solução
i foi capaz de resolver esta editando o arquivo .pro do meu projeto:
QMAKE_CXXFLAGS_RELEASE -= -O2
QMAKE_CXXFLAGS_RELEASE += -O3
i verificado que entrou em vigor, monitorando a saída de compilação.
Outras dicas
Você deve executar o comando qmake
no diretório do projeto depois que você editou o arquivo .pro
.
O comando chmod está falhando porque esse diretório é propriedade de raiz (ou seja, não o seu usuário).
Você poderia lidar com isso com:
sudo chmod ....
Eu acho que a minha grande questão é se você sabe que O3 realmente otimiza para a velocidade ou não. Como Pavel indicado, você pode editar o Makefile e construir manualmente e teste. Meu palpite é que O3 não vai fazer muita diferença e pode ser um pouco pior.
No que diz respeito a criação CXXFLAGS em Qt Creator, sua melhor aposta é para substituir a chamada para fazer. Na seção "Projetos", vá em "etapas de construção" e "Marca" e adicionar CXXFLAGS = '- O3 -fomit-frame-pointer'. Para a seção "Faça argumentos"
Espero que ajude!