我们应当在工程编译根文件之中,定义一个 __MUSL__ 编译器分支宏来决定本次编译是否为利用 MUSL-LIBC CRT运行时编译的工程程式。
因为在通过 __MUSL__ 编译时,我们存在一些函数上的使用限制,比如;64位扩展函数不能用,如:lseek64。
如果要展开 lseek64 函数的编译使用,我们需要打开工程预编译器宏:_LARGEFILE64_SOURCE
该宏在 GUN/LLVM C++ 之中使用 GLIBC 运行库CRT时,是默认被定义的,但在 __MUSL__ 之中缺省是没有定义的。
CMakeLists.txt 预编译器宏定义:
# When compiling with the musl-libc standard library,
# You need to define the _MUSL__ preprocessor macro to ensure correct compilation.
# https://wiki.musl-libc.org/faq
# ADD_DEFINITIONS(-D__MUSL__)
# When using the musl-libc standard library, the _LARGEFILE64_SOURCE macro is not defined by default on some platforms.
# If 64-bit functions extended by _LARGEFILE64_SOURCE, such as lseek64, are required, it needs to be explicitly defined.
# ADD_DEFINITIONS(-D_LARGEFILE64_SOURCE)
另外在 __MUSL__ 之中,我们需要频闭对于 G