1

使用 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 返回以前的版本。为什么?有没有其他方法可以实现我的要求?</p>

对不起,我的英语很差!

4

1 回答 1

0

您需要重新编译您的库,以便更新函数实现。

但是,如果定义 GetGitVersion() 的源文件中没有更改,则可能不会重新编译。

要强制重新编译源文件,您可以使用touch source.c(linux/unix) 或copy /b source.c +,,(windows) 更新文件的上次修改时间。

于 2014-11-22T09:11:21.020 回答