- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我编写了一个简单的 printf C 代码并制作了一个简单的 makefile。当我使用 CFLAGS、CPPFLAGS 和 LDFLAGS 运行 make 时,变量的值进入 cc 执行,然后是没有这些值的 gcc 执行,如下所示:
$ CFLAGS="-I." CPPFLAGS="-D TESTEDEFINE" CXXFLAGS="TESTECXXFLAGS" LDFLAGS="-L." LFLAGS="TESTELFLAGS" make
cc -I. -D TESTEDEFINE -L. teste.c -o teste
gcc -o teste teste.c
当我运行构建的程序时,定义未定义,因为它为我提供了未定义的 #else 的 printf。
测试.c
#include <stdio.h>
int main()
{
#if defined(TESTEDEFINE)
printf("TESTEDEFINE!!!");
#else
printf("!!!");
#endif
return 0;
}
生成文件
all: teste
gcc -o teste teste.c
最佳答案
这些变量是为了一致性、可读性和易用性。您的编译和生成文件都没有引用它们。编译器不会自动引用这些变量。
试试这个:
$ export CFLAGS="-I." CPPFLAGS="-D TESTEDEFINE" CXXFLAGS="TESTECXXFLAGS" LDFLAGS="-L." LFLAGS="TESTELFLAGS"
$ gcc $CFLAGS $CPPFLAGS $CXXFLAGS $LDFLAGS $LFLAGS -o teste teste.c
您还需要在 makefile 中定义它们并在编译器行中引用它们。
关于CFLAGS CPPFLAGS 和 LDFLAGS 调用 cc 但不将值传递给 gcc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46221350/
我正在将一个项目从运行良好的旧 Gradle 版本迁移到当前版本,并且刚刚遇到一个又一个问题。大多数我用谷歌搜索过,但刚刚在这个问题上碰壁了。 Error:(20, 0) Could not get
假设在我的 makefile 中有 program_INCLUDE_DIRS += ../inc CPPFLAGS += $(foreach includedir,$(program_IN
据我了解,CFLAGS(或 C++ 的 CXXFLAGS)用于编译器,而 CPPFLAGS 则由预处理器使用。 但我还是不明白其中的区别。 我需要为 #include 包含的头文件指定包含路径 - 因
#define _BSD_SOURCE 还是设置 CPPFLAGS=-D_BSD_SOURCE 更好? 在我看来,如果一段源代码依赖于特定标准,最好在代码本身中使用#define 明确说明。但是,很多
我正在尝试使用 std::function 但是编译器报错 Error:(50, 10) error: no type named 'function' in namespace 'std' 我试过修
我需要将“-Wall -Werror”设置为项目中所有源文件的 CPPFLAGS。有没有办法在自动工具中做到这一点? 我在 configure.ac 中尝试了以下内容: AC_SUBST([AM_CP
我用 ./configure 设置了 CPPFLAGS 和 LDFLAGS,但是仍然找不到头文件 fst.h。尽管它位于 CPPFLAGS 目录中指定的位置。 ./configure CPPFLAGS
在用于 surf 浏览器的 Arch Linux PKGBUILD 中,有: sed -i 's/CPPFLAGS =/CPPFLAGS +=/g' config.mk sed -i 's/CFLAG
我正在处理一个 Android.mk 文件,对于单个模块,其中一个文件需要不同的 CPPFLAGS;即,它需要启用 -frtti,而其他需要 Android 默认值 -fno-rtti。 显而易见的解
我正在尝试在 Mac OS X Mavericks 上构建 php gettext 模块。 使用 brew install gettext 安装了 gettext,并在 /usr/local/opt/
GNU Make 中的 CPPFLAGS 和 CXXFLAGS 有什么区别? 最佳答案 CPPFLAGS 应该是 C PreP 处理器的标志; CXXFLAGS 用于 C++ 编译器的标志。 make
我似乎无法在我的项目上成功运行 cabal install,因为它依赖于 text-icu 包,而该包需要 icu4c 库安装在系统上。 嗯,我使用 brew install icu4c 在我的 Ma
我编写了一个简单的 printf C 代码并制作了一个简单的 makefile。当我使用 CFLAGS、CPPFLAGS 和 LDFLAGS 运行 make 时,变量的值进入 cc 执行,然后是没有这
我在 Debug模式下构建我的应用程序,我注意到一些错误提示“父级未能评估:没有位置,值可能已被优化掉”。因此,我尝试在我的模块 build.gradle 中添加“-O0”,如下所示: externa
void DoSomething() { ... m_a = new SomeContext(m_data); ... } 使用 Android Studio 的实验性
我想添加编译器标志来构建我的 Postgres C/C++ 扩展。我尝试了标准的 Makefile 实践,但 pg_config 没有选择我添加的任何编译器标志。 Makefile如下: 1 #
我是一名优秀的程序员,十分优秀!