UE4工程中,修改VS的工程设置来添加宏定义是行不通的,比如这样:
这样添加以后不会生效!
需要在“工程名.Build.cs”文件的构造函数中添加:Definitions.Add()。
这样就不用修改引擎安装目录下的Android.mk文件了(路径在:Epic Games\4.11\Engine\Build\Android\Java\jni\)
参考代码:https://github.com/monsieurgustav/UE4-OSC/blob/master/OSC/Source/OSC/OSC.Build.cs
using UnrealBuildTool; public class HuaiKX : ModuleRules { public HuaiKX(TargetInfo Target) { PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "UMG", "Slate", "SlateCore" }); PrivateDependencyModuleNames.AddRange(new string[] { }); Definitions.Add("_CRT_SECURE_NO_WARNINGS"); } }
官网论坛上很多说法是下面这种情况,这种我试过行不通,可能是早期UE4版本的方式,目前版本无效了:
在工程的工程名.Target.cs文件添加
public override void SetupGlobalEnvironment( TargetInfo Target, ref LinkEnvironmentConfiguration OutLinkEnvironmentConfiguration, ref CPPEnvironmentConfiguration OutCPPEnvironmentConfiguration ) { OutCPPEnvironmentConfiguration.Definitions.Add("_CRT_SECURE_NO_WARNINGS"); }
Unreal Build System Target Files(这个官方文档中讲的方法已经过期,可以忽略)
https://docs.unrealengine.com/latest/INT/Programming/UnrealBuildSystem/TargetFiles/index.html
How can I differentiate between Macros for DebugGame Editor vs Development Editor?
相关推荐
`android.mk`文件是Android原生构建系统(NDK)中用于定义模块构建规则的脚本,主要用于C/C++原生库的编译。本篇文章将深入探讨`android.mk`文件的生成及其作用。 **1. android.mk文件简介** `android.mk`文件是...
Android.mk支持宏定义和函数调用,例如`$(call my-function, arg1, arg2)`,my-function是在Android构建系统中预定义的函数,可以进行更复杂的逻辑处理。 八、NDK编译 对于C/C++项目,Android.mk是NDK(Native ...
总结来说,`Android.mk`文件是Android NDK构建过程的关键,通过它我们可以控制C/C++代码的编译过程,包括源文件的定位、编译选项的设置、依赖库的管理以及生成目标类型的指定。正确编写`Android.mk`文件,对于确保C/...
Android.mk 中可以定义多个编译模块,每个编译模块都是以 include $(CLEAR_VARS) 开始,以 include $(BUILD_XXX) 结束。include $(CLEAR_VARS) CLEAR_VARS 由编译系统提供,指定让 GNU MAKEFILE 为你清除除 LOCAL_...
例如,`LOCAL_SRC_FILES`在`Android.bp`中是`srcs`,`LOCAL_CFLAGS`变为`cFlags`等。 4. **处理依赖**:将`LOCAL_DEPENDENCIES`转换为`depends`,并确保正确引用其他模块。 5. **使用转换工具**:Google提供了一个...
`$(call my-dir)` 是一个宏,返回包含 Android.mk 文件的目录路径。 - **include $(CLEAR_VARS)**:这一行用于清除大多数 LOCAL_XXX 变量(除了 LOCAL_PATH),确保每次构建时这些变量都被重新初始化。这很重要,...
Android.mk 是Android构建系统中的关键文件,它定义了如何编译和构建Android项目的特定部分,如APK程序、Java库、C/C++应用程序、静态库和动态库。这份文档将详细介绍Android.mk的各个方面,帮助你深入理解其功能和...
另外还需要在Libavcodec、libavformat等目录下添加android.mk文件,libavcodec示例如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := $(AVCODEC_SRC_FILES) $(AVCODEC_ARM_SRC_FILES...
在这个上下文中,`Android.mk`被用来配置FFmpeg 2.0的编译过程,包括选择要包含的组件、设置编译选项、定义目标平台等。例如,开发者可能会在`Android.mk`中指定如下内容: 1. **库和模块的选择**:FFmpeg包含许多...
Android.mk是Android NDK中的构建文件,用于定义本地库的编译规则。以下是一个基本的Android.mk模板: ```makefile LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := my_library LOCAL_CFLAGS...
综上所述,`Android.mk`文件通过一系列宏定义来控制构建流程,确保正确地打包和构建C/C++源代码为.so文件。例如,在上述示例中,我们定义了一个名为`zzsw_static`的静态库模块,它包含了多个源文件,并且依赖于其他...
- **定义**: 在Android.mk中,可以通过一系列的变量和宏定义来描述一个编译模块。每个模块以`include $(CLEAR_VARS)`开始,并以`include $(BUILD_XXX)`结束,其中`XXX`代表构建类型(如静态库、共享库或可执行程序...
本实例将深入探讨如何进行Android NDK编程,包括Android.mk构建文件的语法注释、打包多个SO(Shared Object)库以及将项目移植到X86架构平台。 **Android.mk文件详解** Android.mk是NDK构建系统中的核心文件,用于...
一个简单的`android.mk`示例通常包括模块定义、源文件、编译选项和链接器选项,配合源代码文件,可以构建出能够在Android设备上运行的原生组件。了解并熟练掌握`android.mk`的编写,对于进行高效、跨平台的Android...
4. **APP_CPPFLAGS** 和 **APP_CFLAGS**:分别添加C++和C编译器的预处理器宏定义。 5. **APP_LDFLAGS**:设置链接器选项,如添加库路径或链接特定库。 6. **LOCAL_MODULE**:定义编译生成的目标库名。 7. **LOCAL_...
在Android Native Development Kit (NDK)中,`android.mk`文件是用于编译原生C/C++代码的关键构建脚本。这个文件告诉NDK如何处理源代码、链接库和其他资源,以便将它们编译成可供Android应用使用的共享库或静态库。 ...
4. **条件编译**:在示例中可以看到,通过ifeq条件语句,可以根据特定的宏定义来决定是否包含某些源文件或添加编译标志。例如,如果`AUDIO_POLICY_TEST`被定义,那么`ENABLE_AUDIO_DUMP`就会被设置为true,并且`...