2016-04-15 6 views
3

私はqmake/makeを使ってライブラリをビルドしています。現時点ではビルドは機能していますが、結果として得られるライブラリを使用することはできません。qmakeでdefault CFLAGSを変更する方法はありますか?

TEMPLATE = lib subdirs 
CONFIG = create_prl staticlib 
QMAKE_CXXFLAGS = -Wall -pedantic -fPIC 
QMAKE_CFLAGS = -Wall -pedantic -fPIC 
# and Sources + headers 

CFLAGS  = -Wall -pedantic -fPIC 
CXXFLAGS  = -Wall -pedantic -fPIC 

マイ.PROファイルは、この情報が含まれています

CFLAGS  = -Wall -pedantic -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -O2 $(DEFINES) 
CXXFLAGS  = -Wall -pedantic -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -O2 $(DEFINES) 

Makefileを修正し、それらのオプションを使用して、それが動作:

qmakeはこのMakefileを生成し問題は、qmakeに必要なフラグだけを生成するように指示する方法です。 (すなわち-Wall -pedantic -fPIC

+0

あなたは本当にこれらのオプション一つ一つの除去を開始し、トラブルの原因となるものを把握する必要があります。私の感想は、1つか2つの問題があるということです。 '-m64'は64ビットコードを作成しますが、32ビットコードとリンクしようとしていますか? **正確なプラットフォームは何ですか**(使用しているmkspecは何ですか?) –

+0

コンパイルオプションを変更する必要がある場合は、 'qtbase/mkspecs'の関連するファイルを修正してから、Qtを再コンパイルして再インストールしてから、アプリケーションを再コンパイルする必要があります。コンパイラオプションを変更すると、ライブラリはバイナリと互換性がなくなり、既存のQtバイナリを再利用することはできません! –

+0

また、C++ APIまたはC APIフォームをライブラリに公開するかどうかを決定する必要があります。 C APIを公開すると、32ビット/ 64ビットマシンが適切に選択されていることを確認する以外に、C++コンパイラーのオプションはライブラリーのユーザーにとって重要ではありません。 –

答えて

1

私はこれらのコマンドを使用して、すべてのフラグを削除する成功:

QMAKE_CXXFLAGS_RELEASE = -Wall -pedantic -fPIC 
QMAKE_CFLAGS_RELEASE = -Wall -pedantic -fPIC 
関連する問題