Nit*_*nai 8 android android-ndk c-preprocessor
当我将#define添加到main.cpp或从main.cpp调用的一个头文件时,它似乎没有在其他文件中定义.
例如,在main.cpp中,我可能会执行以下操作:
#define TEST_FOO 1
Run Code Online (Sandbox Code Playgroud)
然后在我的其他一个文件中,例如secondfile.cpp,忽略TEST_FOO,就像它从未定义过一样:
#if TEST_FOO
// do something <- this never gets reached
#endif
Run Code Online (Sandbox Code Playgroud)
即使在Android.mk文件中,我在main.cpp之后放置了secondfile.cpp:
LOCAL_SRC_FILES := main.cpp \
secondfile.cpp
Run Code Online (Sandbox Code Playgroud)
有没有办法在实际代码中#define Android NDK中的值?
Gra*_*and 16
那是正确的.编译器一次只能知道一个源文件.编译时secondfile.cpp
,它完全忘记了你可能已定义的任何内容main.cpp
.
如果要#define
在所有源文件中显示,则需要将其放在所有文件中包含的标题中.或者,在命令行上传递它; 你可以通过添加这样的东西来做到这一点Android.mk
:
LOCAL_CPPFLAGS := -DTEST_FOO=1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6312 次 |
最近记录: |