在cmake项目中使用替代libc

时间:2015-11-20 09:17:26

标签: c++ cmake libc uclibc musl

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

我找不到有关如何指出cmake使用这种替代libc的任何信息。也没有发送FindMusl.cmake文件,也无法在互联网上找到。简单地使用CC=/usr/bin/musl-gcc不起作用。

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

2 个答案:

答案 0 :(得分:2)

要在cmake中使用musl库,请使用以下内容:

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

答案 1 :(得分:0)

这对我来说效果更好:

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

source