2015-11-20 71 views
1

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

我找不到任何关于如何指向cmake以使用这样一个替代libc的信息。 FindMusl.cmake文件也没有出货,我也无法在互联网上找到它。仅使用CC=/usr/bin/musl-gcc不起作用。

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

+0

调整CFLAGS和连接器选项?也许重复的http://stackoverflow.com/questions/2728552/how-to-link-to-a-different-libc-file – usr1234567

回答

0

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