使用Android NDK,我想在我的c ++源代码中获取git版本。 所以我实现了我的功能:
const char *GetGitVersion()
{
#ifdef GIT_VERSION
return GIT_VERSION;
#else
return NULL;
#endif
}
Android.mk中的:
LOCAL_CPPFLAGS += -D'GIT_VERSION="$(shell $(LOCAL_PATH)/get_version.sh)"'
get_version.sh中的:
GIT_VERSION=`git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | \
awk '{gsub("-", "");print $2"-"$1}'`
echo Git-$GIT_VERSION
我的问题是:
当我第一次构建我的程序时,它可以工作。但是当我提交我的更改并且git版本已经更改时,编译器还没有构建我的源代码。函数GetGitVersion返回先前版本。为什么?有没有其他方法来实现我的要求?
抱歉,我的英语很差!
答案 0 :(得分:0)
您需要重新编译lib,以便更新函数实现。
但是,如果源文件中没有定义GetGitVersion()的更改,则可能无法重新编译。
要强制重新编译源文件,可以使用touch source.c
(linux / unix)或copy /b source.c +,,
(windows)更新文件的上次修改时间。