怎么在cc.mk中加上-g参数
时间: 2024-02-25 10:51:13 浏览: 21
在 `cc.mk` 文件中加上 `-g` 参数,可以通过修改 `CFLAGS` 变量来实现。`-g` 参数用于生成可调试的二进制文件,可以在 gdb 调试器中使用。
以下是一个示例 `cc.mk` 文件,其中加入了 `-g` 参数:
```
# C++ 编译器
CXX = g++
# 编译选项
CFLAGS = -Wall -g
# 链接选项
LDFLAGS =
# 源文件和目标文件列表
SRCS = $(wildcard *.cpp)
OBJS = $(patsubst %.cpp, %.o, $(SRCS))
# 目标程序
TARGET = my_program
# 编译规则
$(TARGET): $(OBJS)
$(CXX) $(LDFLAGS) $(OBJS) -o $@
%.o: %.cpp
$(CXX) $(CFLAGS) -c $< -o $@
# 清理规则
clean:
rm -f $(OBJS) $(TARGET)
```
在上面的例子中,`CFLAGS` 变量中加入了 `-g` 参数,表示编译器应该生成可调试的二进制文件。
使用这个 `cc.mk` 文件时,只需要在 Makefile 中引用即可,例如:
```
include cc.mk
all: $(TARGET)
```
在编译时,`-g` 参数将被自动加入到编译选项中。
相关问题
./android-ndk-r25c/sources/android/native_app_glue/Android.mk ./android-ndk-r25c/sources/android/support/Android.mk ./android-ndk-r25c/sources/android/ndk_helper/Android.mk ./android-ndk-r25c/sources/android/cpufeatures/Android.mk ./android-ndk-r25c/sources/cxx-stl/llvm-libc++abi/Android.mk ./android-ndk-r25c/sources/cxx-stl/llvm-libc++/Android.mk ./android-ndk-r25c/sources/third_party/googletest/Android.mk ./android-ndk-r25c/sources/third_party/shaderc/libshaderc_util/Android.mk ./android-ndk-r25c/sources/third_party/shaderc/third_party/glslang/Android.mk ./android-ndk-r25c/sources/third_party/shaderc/third_party/spirv-tools/Android.mk ./android-ndk-r25c/sources/third_party/shaderc/third_party/Android.mk ./android-ndk-r25c/sources/third_party/shaderc/libshaderc/Android.mk ./android-ndk-r25c/sources/third_party/shaderc/Android.mk ./android-ndk-r25c/sources/third_party/vulkan/src/build-android/jni/Android.mk哪个是NDK编译的mk
这些都是 Android NDK 内部的 `Android.mk` 文件。其中,`./android-ndk-r25c/sources/android/native_app_glue/Android.mk` 是用于编译 Native Activity 示例应用程序的 `Android.mk` 文件;`./android-ndk-r25c/sources/android/support/Android.mk` 是包含一些 Android 支持库的 `Android.mk` 文件;`./android-ndk-r25c/sources/android/ndk_helper/Android.mk` 是包含一些辅助函数和类的 `Android.mk` 文件;`./android-ndk-r25c/sources/android/cpufeatures/Android.mk` 是用于编译 `cpufeatures` 库的 `Android.mk` 文件,该库提供了一些 CPU 相关的信息和功能;`./android-ndk-r25c/sources/cxx-stl/llvm-libc++abi/Android.mk` 和 `./android-ndk-r25c/sources/cxx-stl/llvm-libc++/Android.mk` 是用于编译 C++ STL 库的 `Android.mk` 文件,分别对应 libc++abi 和 libc++ 两个 STL 库;`./android-ndk-r25c/sources/third_party/googletest/Android.mk` 是用于编译 Google Test 测试框架的 `Android.mk` 文件;`./android-ndk-r25c/sources/third_party/shaderc/Android.mk` 是用于编译 Shaderc 编译器的 `Android.mk` 文件,该编译器可以将 GLSL 代码编译成 SPIR-V 代码;`./android-ndk-r25c/sources/third_party/shaderc/libshaderc/Android.mk` 是用于编译 Shaderc 库的 `Android.mk` 文件;`./android-ndk-r25c/sources/third_party/shaderc/libshaderc_util/Android.mk` 是用于编译 Shaderc Util 库的 `Android.mk` 文件,该库提供了一些辅助函数和类;`./android-ndk-r25c/sources/third_party/shaderc/third_party/Android.mk` 是用于编译 Shaderc 编译器依赖的第三方库的 `Android.mk` 文件,包括 glslang 和 spirv-tools 两个库;`./android-ndk-r25c/sources/third_party/shaderc/third_party/glslang/Android.mk` 是用于编译 glslang 库的 `Android.mk` 文件;`./android-ndk-r25c/sources/third_party/shaderc/third_party/spirv-tools/Android.mk` 是用于编译 spirv-tools 库的 `Android.mk` 文件;`./android-ndk-r25c/sources/third_party/vulkan/src/build-android/jni/Android.mk` 是用于编译 Vulkan 库的 `Android.mk` 文件。
如果您要在 Android NDK 中编写自己的 `Android.mk` 文件,可以参考这些示例文件。
如何在Android.mk中使用与 或 非
在 Android.mk 中,你可以使用以下语法来实现与、或和非逻辑运算:
1. 与运算:使用 && 符号。例如:
```
ifneq ($(TARGET_ARCH),armv7-a) && ifneq ($(TARGET_ARCH),arm64-v8a)
# do something
endif
```
2. 或运算:使用 || 符号。例如:
```
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) || ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
# do something
endif
```
3. 非运算:使用 ! 符号。例如:
```
ifeq ($(APP_PLATFORM),android-28)
# do something
else
ifneq ($(APP_PLATFORM),)
# do something else
endif
endif
# 可以简化为
ifeq ($(APP_PLATFORM),android-28)
# do something
else ifneq ($(APP_PLATFORM),)
# do something else
endif
```
注意,以上示例只是演示如何使用逻辑运算符。具体的条件表达式和动作需要根据你自己的需求来编写。