`
aigo
  • 浏览: 2679831 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

[UE4]如何添加C++宏定义(包括Android.mk中的LOCAL_CFLAGS)

UE4 
阅读更多

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?

https://answers.unrealengine.com/questions/44046/predefined-macros-for-debuggame-editor-vs-developm.html

 

 

  • 大小: 107 KB
分享到:
评论

相关推荐

    生成android.mk文件

    `android.mk`文件是Android原生构建系统(NDK)中用于定义模块构建规则的脚本,主要用于C/C++原生库的编译。本篇文章将深入探讨`android.mk`文件的生成及其作用。 **1. android.mk文件简介** `android.mk`文件是...

    Android.mk文件语法规范

    Android.mk支持宏定义和函数调用,例如`$(call my-function, arg1, arg2)`,my-function是在Android构建系统中预定义的函数,可以进行更复杂的逻辑处理。 八、NDK编译 对于C/C++项目,Android.mk是NDK(Native ...

    android编译系统makefile(Android.mk)写法

    总结来说,`Android.mk`文件是Android NDK构建过程的关键,通过它我们可以控制C/C++代码的编译过程,包括源文件的定位、编译选项的设置、依赖库的管理以及生成目标类型的指定。正确编写`Android.mk`文件,对于确保C/...

    android编译系统makefile(Android.mk)写法.pdf

    Android.mk 中可以定义多个编译模块,每个编译模块都是以 include $(CLEAR_VARS) 开始,以 include $(BUILD_XXX) 结束。include $(CLEAR_VARS) CLEAR_VARS 由编译系统提供,指定让 GNU MAKEFILE 为你清除除 LOCAL_...

    androidmk 转换Android.bp工具方法

    例如,`LOCAL_SRC_FILES`在`Android.bp`中是`srcs`,`LOCAL_CFLAGS`变为`cFlags`等。 4. **处理依赖**:将`LOCAL_DEPENDENCIES`转换为`depends`,并确保正确引用其他模块。 5. **使用转换工具**:Google提供了一个...

    Android.mk文档规范

    `$(call my-dir)` 是一个宏,返回包含 Android.mk 文件的目录路径。 - **include $(CLEAR_VARS)**:这一行用于清除大多数 LOCAL_XXX 变量(除了 LOCAL_PATH),确保每次构建时这些变量都被重新初始化。这很重要,...

    Android.mk 详解剖析

    Android.mk 是Android构建系统中的关键文件,它定义了如何编译和构建Android项目的特定部分,如APK程序、Java库、C/C++应用程序、静态库和动态库。这份文档将详细介绍Android.mk的各个方面,帮助你深入理解其功能和...

    ndk编译ffmpeg0.10(Neon)的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...

    ffmpeg 2.0 Android.mk file

    在这个上下文中,`Android.mk`被用来配置FFmpeg 2.0的编译过程,包括选择要包含的组件、设置编译选项、定义目标平台等。例如,开发者可能会在`Android.mk`中指定如下内容: 1. **库和模块的选择**:FFmpeg包含许多...

    jni android.mk编译so模板

    Android.mk是Android NDK中的构建文件,用于定义本地库的编译规则。以下是一个基本的Android.mk模板: ```makefile LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := my_library LOCAL_CFLAGS...

    Android.mk文件分析

    综上所述,`Android.mk`文件通过一系列宏定义来控制构建流程,确保正确地打包和构建C/C++源代码为.so文件。例如,在上述示例中,我们定义了一个名为`zzsw_static`的静态库模块,它包含了多个源文件,并且依赖于其他...

    android编译系统makefile(Android.mk)写法.docx

    - **定义**: 在Android.mk中,可以通过一系列的变量和宏定义来描述一个编译模块。每个模块以`include $(CLEAR_VARS)`开始,并以`include $(BUILD_XXX)`结束,其中`XXX`代表构建类型(如静态库、共享库或可执行程序...

    android ndk编程实例(含注释,如何打包多个so)

    本实例将深入探讨如何进行Android NDK编程,包括Android.mk构建文件的语法注释、打包多个SO(Shared Object)库以及将项目移植到X86架构平台。 **Android.mk文件详解** Android.mk是NDK构建系统中的核心文件,用于...

    android&mk

    一个简单的`android.mk`示例通常包括模块定义、源文件、编译选项和链接器选项,配合源代码文件,可以构建出能够在Android设备上运行的原生组件。了解并熟练掌握`android.mk`的编写,对于进行高效、跨平台的Android...

    android ndk application.mk

    4. **APP_CPPFLAGS** 和 **APP_CFLAGS**:分别添加C++和C编译器的预处理器宏定义。 5. **APP_LDFLAGS**:设置链接器选项,如添加库路径或链接特定库。 6. **LOCAL_MODULE**:定义编译生成的目标库名。 7. **LOCAL_...

    NDK的android.mk文件的详解

    在Android Native Development Kit (NDK)中,`android.mk`文件是用于编译原生C/C++代码的关键构建脚本。这个文件告诉NDK如何处理源代码、链接库和其他资源,以便将它们编译成可供Android应用使用的共享库或静态库。 ...

    android编译系统makefile(Android.mk)写法参照.pdf

    4. **条件编译**:在示例中可以看到,通过ifeq条件语句,可以根据特定的宏定义来决定是否包含某些源文件或添加编译标志。例如,如果`AUDIO_POLICY_TEST`被定义,那么`ENABLE_AUDIO_DUMP`就会被设置为true,并且`...

Global site tag (gtag.js) - Google Analytics