4

私はmake自分のプロジェクトを構築するために使用しています。私はglfw依存関係として持っておりcmake、Makefile を生成するために使用します。cmakeこれは、Makefile から呼び出す方法です。

glfw:
    $(MKDIR) $(CBUILD_PATH)$(PATH_SEP)glfw
ifeq ($(OS),"MinGW")
    cd $(CBUILD_PATH)$(PATH_SEP)glfw && \
    cmake -G "MSYS Makefiles" -DBUILD_SHARED_LIBS=ON -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF ..$(PATH_SEP)..$(PATH_SEP)src$(PATH_SEP)c$(PATH_SEP)glfw
    cd $(CBUILD_PATH)$(PATH_SEP)glfw && $(MAKE) $(MFLAGS)
    cd $(CBUILD_PATH)$(PATH_SEP)glfw$(PATH_SEP)src && echo "..\..\..\$(IMPLIB) /s glfw3.lib glfw3.dll && exit;" | cmd
else
    cd $(CBUILD_PATH)$(PATH_SEP)glfw && \
    cmake -DBUILD_SHARED_LIBS=OFF -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF ..$(PATH_SEP)..$(PATH_SEP)src$(PATH_SEP)c$(PATH_SEP)glfw
    cd $(CBUILD_PATH)$(PATH_SEP)glfw && $(MAKE) $(MFLAGS)
endif

あまりエレガントではありませんが、機能します。GCC が 32 ビット マシンで 64 ビット バイナリをビルドするためのフラグを指定できますが、このフラグをコマンド ラインに追加する-m64方法がわかりませんcmake(にパッチを適用せずにCMakeLists.txt)。コマンドラインの解決策がほとんどのように感じますが、見つけることができませんでした。これは主に Windows で必要です。そこで MinGW/Msys を使用しています。

4

1 に答える 1

4

Makefile でアーチを検出し、条件付きで追加する必要があります

-D CMAKE_{C,CXX}_FLAGS=-m64

cmake呼び出しに。

于 2012-10-04T03:39:37.873 に答える