在cmake项目中使用另一种libc

7
我有一个使用CMake构建的C/C++项目。在尝试编译静态二进制文件时,我遇到了计算机和目标机器上不同GLIBC版本的问题。在SO的另一个问题中,类似问题的被接受答案是使用libc的替代实现,如musl或uClibc。 (请参阅此处
我找不到任何关于如何指向cmake使用这种替代libc的信息。也没有提供FindMusl.cmake文件,也找不到互联网上的文件。简单地使用CC=/usr/bin/musl-gcc无效。
如何使我的cmake项目与这些替代libc实现静态链接,使其独立于GLIBC?

调整CFLAGS和链接器标志?!也许是https://dev59.com/B3E85IYBdhLWcg3wikEu的重复问题。 - usr1234567
2个回答

3

要使用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

无法工作: "项目未使用手动指定的变量" - eadmaster

0

对我来说,这个方法效果更好:

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

来源


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接