Следуя инструкциям, здесь, я создали инструментальную цепочку NDK с поддержкой Fortran (OSX, NDK-7b) с целью создания LAPACK / BLAS.
Используя android-cmake с исходным кодом net lib 3.4.0, мне кажется, что я почти добился успеха. Однако сборка BLAS завершается ошибкой при связывании одного из тестов (с ошибкой, указывающей на неразрешенные sincos
и sincosf
). Небольшой поиск показывает, что эти функции недоступны в старых версиях Android. Мне интересно, как лучше всего решить эти функции?
Ниже приведен пример ошибки связи:
cd /Users/marc/software/lapack-3.4.0/Android/BLAS/TESTING && / opt / local / bin / cmake -E cmake_link_script CMakeFiles / xblat2c.dir / link.txt --verbose = 1 / opt / local / общий доступ / java / android-ndk-macosx / toolchains / arm-linux-androidabi-4.7.0 / prebuilt / darwin-x86 / bin / arm-linux-androideabi-gfortran -Wl, - gc-section -Wl, -z , nocopyreloc -Wl, - fix-cortex-a8 -Wl, - no-undefined -lstdc ++ -lsupc ++ CMakeFiles / xblat2c.dir / cblat2.fo -o ../../bin/xblat2c -rdynamic -L / Пользователи /marc/software/lapack-3.4.0/Android/systemlibs/armeabi-v7a -L / opt / local / share / java / android-ndk-macosx / toolchains / arm-linux-androidabi-4.7.0 / prebuilt / darwin -x86 / user / libs / armeabi-v7a ../../lib/libblas.a -lm -Wl, -rpath, / Users / marc / software / lapack-3.4.0 / Android / systemlibs / armeabi-v7a: /opt/local/share/java/android-ndk-macosx/toolchains/arm-linux-androidabi-4.7.0/prebuilt/darwin-x86/user/libs/armeabi-v7a / opt / local / share / java / android -ndk-macosx / цепочки инструментов / arm-linux-androidabi-
4.7.0 / prebuilt / darwin-x86 / lib / gcc / arm-linux-androidabi / 4.7.0 /../../../../ arm-linux-androidabi / lib / libgfortran.a (c99_functions. o): В функции
cexpf': /opt/local/share/java/android-ndk-macosx/src/build/../gcc/gcc-4.7.0/libgfortran/intrinsics/c99_functions.c:910: undefined reference to
sincosf '