我正在尝试在两台不同的机器上生成一个具有相同校验和的共享库(源代码,Linux操作系统,gcc,cmake,ccache,g ++都有相同的版本。只有硬件更改)。
我试过-frandom-seed=string
标志,但不可能有相同的校验和......
有没有办法让它变得可能?
非常感谢。
西尔
答案 0 :(得分:0)
如果您使用 cmake 来构建项目,然后在两个不同的服务器上拥有相同的校验和,则应该向生成共享对象/库/可执行文件的Makefile.txt添加一个命令。实际上,除非我们明确地对它们进行排序,否则Cmake不保证对象文件的一致链接顺序 为此,请致电列表:
list(SORT <variable>)
例如,以下命令将对变量SRC_FILE
中的文件进行排序,然后使用这些文件生成共享库/对象:
list(SORT SRC_FILES)
add_library(${PROJECT_NAME} SHARED ${HEADER_FILES} ${SRC_FILES})
由于