我有一个使用CMake构建的C / C ++项目。在尝试编译静态二进制文件时,我遇到了计算机和目标计算机上不同GLIBC
版本的问题。在关于SO的另一个问题中,对类似问题的接受答案是使用libc的替代实现,如musl
或uClibc
。 (见here)
我找不到有关如何指出cmake
使用这种替代libc的任何信息。也没有发送FindMusl.cmake
文件,也无法在互联网上找到。简单地使用CC=/usr/bin/musl-gcc
不起作用。
如何将我的cmake项目静态链接到这些替代libc实现,使其独立于GLIBC?
答案 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)