2
我使用make
來構建我的項目。我有glfw
作爲依賴項,它使用cmake
來生成Makefile。這是我怎麼稱呼cmake
從我的Makefile:CMake,在32位機器上構建64位
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
不是很優雅,但它的工作原理。我可以指定一個-m64
標誌讓GCC在32位機器上構建64位二進制文件,但是我不知道如何讓cmake
將這個標誌添加到命令行中(無需修補CMakeLists.txt
)。感覺最多的是一個命令行解決方案,但我無法找到它。 請注意,我主要需要Windows,我在那裏使用MinGW/Msys。