我在我的makefile中有以下的代码:
GLFW_FLAG := -m32 -O2 -Iglfw/include -Iglfw/lib -Iglfw/lib/cocoa $(CFLAGS)
...
$(BUILD_DIR)/%.o : %.c
$(CC) -c $(GLFW_FLAG) $< -o $@
$(BUILD_DIR)/%.o : %.m
$(CC) -c $(GLFW_FLAG) $< -o $@
-m32
指示GCC生成32位代码。它存在的原因是因为在某些配置中,GHC被设置为构建32位代码,但是GCC的默认设置有时是64位。我希望将其泛化,以便自动检测GHC正在构建32位还是64位代码,然后将正确的标志传递给GCC。问题:如何询问GHC将构建哪种类型的代码(32位还是64位)?
PS:我的cabal文件在构建过程中调用此makefile以解决cabal中的限制。我希望我可以在我的cabal文件中将这些列为c源。
ghc -e 'print (maxBound :: Int)'
命令的结果,这个结果会根据你使用的是32位还是64位的 GHC 而有所不同... - hvr