openlibm
v0.8.4
OpenLibm은 고품질의 이식 가능한 독립형 C 수학 라이브러리( libm
)를 갖기 위한 노력입니다. 애플리케이션 및 프로그래밍 언어 구현에서 독립형으로 사용할 수 있습니다.
이 프로젝트는 컴파일러와 운영 체제, 32비트 및 64비트 환경에서 일관되게 작동하는 Julia 프로그래밍 언어에 대한 좋은 libm
필요로 하여 탄생했습니다.
OpenLibm은 Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD 및 DragonFly BSD를 기반으로 구축됩니다. GCC와 clang을 모두 사용하여 빌드됩니다. x86 및 x86-64 아키텍처에서 대규모 테스트를 거쳐 널리 사용되었지만 OpenLibm은 arm, aarch64, ppc64le, mips, wasm32, riscv, s390(x) 및 loongarch64도 지원합니다.
make
이지만 BSD에서는 gmake
.make USEGCC=1
사용하세요. 이는 Linux 및 Windows의 기본값입니다.make USECLANG=1
사용하세요. 이는 OS X, FreeBSD 및 OpenBSD의 기본값입니다.make ARCH=wasm32
사용하세요.make ARCH=i386
사용하십시오. 기타 지원되는 아키텍처는 i486, i586 및 i686입니다. GCC 4.8은 이전 32비트 아키텍처에서 올바른 코드 생성을 위한 최소 요구 사항입니다. 크로스 빌드 riscv64
예로 들어 보겠습니다.
qemu-riscv64-static
, gcc-riscv64-linux-gnu
설치ARCH=riscv64
TRIPLE= $ARCH -linux-gnu
make ARCH= $ARCH TOOLPREFIX= $TRIPLE - -j
make -C test ARCH= $ARCH TOOLPREFIX= $TRIPLE - -j
qemu- $ARCH -static -L . -L /usr/ $TRIPLE / test/test-float
qemu- $ARCH -static -L . -L /usr/ $TRIPLE / test/test-double
mkdir build
사용하여 빌드 디렉터리를 만들고 cd build
사용하여 해당 디렉터리로 이동합니다.cmake /path/to/openlibm/
사용하여 기본 빌드 시스템을 생성하거나 선택한 빌드 시스템을 사용하여 프로젝트를 생성합니다(예: cmake /path/to/openlib/ -G "MinGW Makefiles"
.cmake --build .
.기본 CMake 구성은 공유 라이브러리를 빌드하며 BUILD_SHARED_LIBS 구성 옵션을 사용하여 쉽게 구성할 수 있습니다.
openlibm에 대한 PowerPC 지원은 IBM의 후원을 받았습니다.