我使用git作为我的c ++项目的版本跟踪器.
有时我需要重复计算,我想知道我使用的程序版本.
将#提交放入主可执行文件的好方法是什么?换一种说法.我希望程序在运行程序时告诉我介绍性消息中当前提交的#.
我能想到的一种方法是让shell中的c ++程序午餐"git log"并提取commit#但是我不确定如何在make期间执行它.
(我使用linux)
我有一个makefile,它在命令行中获取选项
make OPTION_1=1
Run Code Online (Sandbox Code Playgroud)
根据该值,它将向对象子集添加其他编译器定义.
ifeq ($(OPTION_1), 1)
CC_FLAGS += -DOPTION_1_ON
endif
Run Code Online (Sandbox Code Playgroud)
定义中的更改会影响包含的头文件内容 - 存根或实现会暴露给目标文件.
如何通过此选项更改来重建受影响的文件?
我有一个使用SQLite的C++程序.我想将SQL查询存储在一个单独的文件中 - 纯文本文件,而不是源代码文件 - 但是将该文件嵌入可执行文件中,就像资源一样.
(这必须在Linux上运行,因此据我所知,我无法将其存储为实际资源,但如果它适用于Windows,那将是完美的.)
有没有简单的方法,或者它是否有效地要求我为Linux编写自己的资源系统?(很容易,但需要更长的时间.)
有没有办法在每次提交时在文件中包含git commit哈希?我只能在归档期间找到如何执行此操作,但我无法找到如何为每次提交执行此操作.
我正在使用git作为修订控件进行科学编程,因此这种功能对于重现性原因非常有用(即,git hash会自动包含在所有结果文件和数字中).
我正在尝试将"git describe"的输出添加到我的应用程序的about窗口中,因此更容易找出人们使用的应用程序版本.
我可以通过添加以下编译器标志来实现:-DAPP_VERSION ="$(git describe HEAD)"
但由于该项目基于qmake,我想找到一种方法将其放入Qt项目文件中.这可能吗?如果是这样,怎么样?
编辑:我尝试添加以下内容:
QMAKE_CXXFLAGS + = -DAPP_VERSION ="$(git describe HEAD)"
但它只是给了我"-DAPP_VERSION =",所以我想我必须使用一些转义字符,但我不知道哪些和哪里.:/