7

我有一个使用 CMake 构建的 C/C++ 项目。在尝试编译静态二进制文件时,我在GLIBC计算机和目标计算机上遇到了不同版本的问题。在关于 SO 的另一个问题中,对类似问题的公认答案是使用 libc 的替代实现,例如muslor uClibc。(见这里

我找不到任何关于如何指出cmake使用这种替代 libc 的信息。既没有提供FindMusl.cmake文件,也无法在 Internet 上找到文件。简单地使用CC=/usr/bin/musl-gcc是行不通的。

如何将我的 cmake 项目与此类替代 libc 实现静态链接,使其独立于 GLIBC?

4

2 回答 2

3

要将 musl 库与 cmake 一起使用,请使用以下内容:

export CC="musl-gcc"
cmake -DCMAKE_EXE_LINKER_FLAGS="-static -Os" ..
make

或者

export CC="musl-gcc"
cmake -DCMAKE_C_FLAGS="-static -Os" ..
make

或者

export CC="musl-gcc -static -Os"
cmake ..
make
于 2017-01-26T12:11:44.083 回答
0

这对我来说效果更好:

 cmake -DCMAKE_TOOLCHAIN_FILE=${POLLY_ROOT}/gcc-static.cmake ..

资源

于 2021-05-12T15:17:54.233 回答