1

我正在尝试在两台不同的机器上生成一个具有相同校验和的共享库(源代码、Linux OS、gcc、cmake、ccache、g++ 具有相同的版本。只有硬件更改)。

我试过-frandom-seed=string标志,但不可能有相同的校验和......

有没有办法让它成为可能?

非常感谢。

西尔万

4

1 回答 1

0

如果您使用cmake构建您的项目,然后在两个不同的服务器上具有相同的校验和,您应该在 Makefile.txt 中添加一个生成共享对象/库/可执行文件的命令。实际上,除非我们明确地对它们进行排序,否则 Cmake 并不保证目标文件的链接顺序一致。
为此,调用列表:

list(SORT <variable>)

例如,以下命令将对变量中的文件进行排序SRC_FILE,然后用于生成共享库/对象:

list(SORT SRC_FILES)
add_library(${PROJECT_NAME} SHARED ${HEADER_FILES} ${SRC_FILES})

谢谢

于 2018-03-13T12:30:41.013 回答