我的团队成员使用 Windows 构建环境,并且 Makefile 具有:
CC := $(ANDROID_NDK_HOME)/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/bin/aarch64-linux-android-gcc.exe
AR := $(ANDROID_NDK_HOME)/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/bin/aarch64-linux-android-ar.exe
其中 ANDROID_NDK_HOME 是用户必须设置的环境变量。
我想在我的 Ubuntu 安装上使用相同的 Makefile,但想更改 Makefile,以便我们都可以使用相同的 Makefile。那可能吗?在此期间,我做了以下有效的更改。
CC := $(ANDROID_NDK_HOME)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc
AR := $(ANDROID_NDK_HOME)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar
基本上,更改是将“windows-x86”更改为 linux-x86,并删除了二进制文件本身名称中的 .exe。
任何提示/指示表示赞赏。谢谢。
最佳答案
您可以在某些特定于操作系统的环境变量上进行分支。例如:COMSPEC
在 Windows 上始终设置为非空值,可能在其他平台上未定义。
ifneq ($(COMSPEC),)
# Windows
CC := $(ANDROID_NDK_HOME)/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/bin/aarch64-linux-android-gcc.exe
AR := $(ANDROID_NDK_HOME)/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/bin/aarch64-linux-android-ar.exe
else
# Not Windows
CC := $(ANDROID_NDK_HOME)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc
AR := $(ANDROID_NDK_HOME)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar
endif
关于linux - 如何在 Makefile 中设置同时适用于 Windows 和 Linux 平台的 CC 和 AR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41927133/