assimp / assimp

The official Open-Asset-Importer-Library Repository. Loads 40+ 3D-file-formats into one unified and clean data structure.
https://www.assimp.org
Other
10.76k stars 2.9k forks source link

[Android]assimp.so armeabi-v7 build Failed,arm64-v8a success #4563

Closed friskyliu closed 1 year ago

friskyliu commented 2 years ago

[Android]assimp.so armeabi-v7 build Failed,arm64-v8a success。

ndk version: 21.4.7075529
cmake version: 3.18.1
assimp version: 5.2.4

build params:

        -DANDROID_ABI=%ABI% ^
        -DANDROID_PLATFORM=android-%PLATFORM_VERSION% ^
        -DCMAKE_INSTALL_PREFIX=%LIB_OUTPUT_DIR% ^
        -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=%LIB_OUTPUT_DIR%/build ^
        -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=%LIB_OUTPUT_DIR%/build ^
        -DCMAKE_BUILD_TYPE=Release ^
        -DANDROID_NDK=%ANDROID_NDK% ^
        -DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK%/build/cmake/android.toolchain.cmake ^
        -DCMAKE_MAKE_PROGRAM=%CMAKE_PATH%/bin/ninja.exe ^
        -G"Ninja" ^
        -DANDROID_ARM_NEON=TRUE ^
        -DANDROID_TOOLCHAIN=clang ^
        -DANDROID_STL=c++_shared ^
        -DCMAKE_C_FLAGS="%CFLAGS% -Os -Wall -pipe -fPIC" ^
        -DCMAKE_CXX_FLAGS=-Wno-c++11-narrowing ^
        -DANDROID_CPP_FEATURES=rtti exceptions ^
        -DASSIMP_BUILD_DRACO=TRUE ^
        -DASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT=FALSE ^
        -DASSIMP_BUILD_GLTF_IMPORTER=TRUE ^
        -DASSIMP_BUILD_OBJ_IMPORTER=TRUE ^
        -DASSIMP_BUILD_FBX_IMPORTER=TRUE ^
        -DASSIMP_BUILD_COLLADA_IMPORTER=TRUE ^
        -DASSIMP_BUILD_SAMPLES=OFF ^
        -DASSIMP_BUILD_TESTS=OFF ^
        -DASSIMP_NO_EXPORT=ON ^
        -DASSIMP_BUILD_ZLIB=ON ^
        -DASSIMP_BUILD_ASSIMP_TOOLS=OFF ^
        -DASSIMP_ANDROID_JNIIOSYSTEM=OFF ^

build log:

-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
...
-- Looking for unistd.h - found
-- Build an import-only version of Assimp.
-- Found PythonInterp: D:/ProgramFile/Python/Python37/python.exe (found version "3.7.5")
--- Running combined CXX flags test, flags: -Wno-bool-compare;-Wno-comment;-Wno-maybe-uninitialized;-Wno-sign-compare;-Wno-unused-local-typedefs;-fvisibility=default;-Wno-bool-compare;-Wno-comment;-Wno-maybe-uninitialized;-Wno-sign-compare;-Wno-unused-local-typedefs;-fvisibility=default
--- Passed combined CXX flags test
INFO Hunter enabled or RT-extension not found. glTF import/export will be built without Open3DGC-compression.
-- Enabled importer formats: COLLADA OBJ FBX GLTF
-- Disabled importer formats: AMF 3DS AC ASE ASSBIN B3D BVH DXF CSM HMP IRRMESH IQM IRR LWO LWS M3D MD2 MD3 MD5 MDC MDL NFF NDO OFF OGRE OPENGEX PLY MS3D COB BLEND IFC XGL Q3D Q3BSP RAW SIB SMD STL TERRAGEN 3D X X3D 3MF MMD
-- Treating all warnings as errors (for assimp library only)
-- Configuring done
-- Generating done
-- Build files have been written to: D:/WorkDir/assimp/bin/armeabi-v7a
[3/218] Building CXX object contrib/draco/CMakeFiles/draco_core.dir/src/draco/core/divide.cc.o
warning: unknown warning option '-Wno-bool-compare' [-Wunknown-warning-option]
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [-Wunknown-warning-option]
2 warnings generated.
....
[21/218] Building CXX object contrib/draco/CMakeFiles/draco_io.dir/src/draco/io/stdio_file_reader.cc.o
FAILED: contrib/draco/CMakeFiles/draco_io.dir/src/draco/io/stdio_file_reader.cc.o
D:\Android_SDK\ndk\21.4.7075529\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=armv7-none-linux-androideabi21 --gcc-toolchain=D:/Android_SDK/ndk/21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64 --sysroot=D:/Android_SDK/ndk/21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot -DASSIMP_BUILD_NO_C4D_IMPORTER -DASSIMP_BUILD_NO_EXPORT -DASSIMP_BUILD_NO_M3D_EXPORTER -DASSIMP_BUILD_NO_M3D_IMPORTER -DDRACO_CMAKE=1 -DDRACO_FLAGS_SRCDIR=\"D:/WorkDir/assimp/assimp-5.2.4/contrib/draco\" -DDRACO_FLAGS_TMPDIR=\"/tmp\" -D_FILE_OFFSET_BITS=64 -Iinclude -I. -ID:/WorkDir/assimp/assimp-5.2.4/include -ID:/WorkDir/assimp/assimp-5.2.4/code -ID:/WorkDir/assimp/assimp-5.2.4/. -ID:/WorkDir/assimp/assimp-5.2.4/contrib/zlib -Icontrib/zlib -ID:/WorkDir/assimp/assimp-5.2.4/contrib/draco -ID:/WorkDir/assimp/assimp-5.2.4/contrib/draco/src -fvisibility=hidden -fno-strict-aliasing -Wall -Wno-long-long -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -frtti -Wno-c++11-narrowing -Oz -DNDEBUG  -fPIC -Wno-bool-compare -Wno-comment -Wno-maybe-uninitialized -Wno-sign-compare -Wno-unused-local-typedefs -fvisibility=default -std=gnu++11 -MD -MT contrib/draco/CMakeFiles/draco_io.dir/src/draco/io/stdio_file_reader.cc.o -MF contrib\draco\CMakeFiles\draco_io.dir\src\draco\io\stdio_file_reader.cc.o.d -o contrib/draco/CMakeFiles/draco_io.dir/src/draco/io/stdio_file_reader.cc.o -c D:/WorkDir/assimp/assimp-5.2.4/contrib/draco/src/draco/io/stdio_file_reader.cc
warning: unknown warning option '-Wno-bool-compare' [-Wunknown-warning-option]
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [-Wunknown-warning-option]
D:/WorkDir/assimp/assimp-5.2.4/contrib/draco/src/draco/io/stdio_file_reader.cc:91:48: error: use of undeclared identifier 'ftello'; did you mean 'ftell'?
  const size_t file_size = static_cast<size_t>(ftello(file_));
                                               ^~~~~~
                                               ftell
D:/Android_SDK/ndk/21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include\stdio.h:224:6: note: 'ftell' declared here
long ftell(FILE* __fp);
     ^
2 warnings and 1 error generated.
[22/218] Building CXX object contrib/draco/CMakeFiles/draco_io.dir/src/draco/io/file_writer_utils.cc.o
warning: unknown warning option '-Wno-bool-compare' [-Wunknown-warning-option]
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [-Wunknown-warning-option]
2 warnings generated.
...
[34/218] Building CXX object contrib/draco/CMakeFiles/draco_io.dir/src/draco/io/ply_decoder.cc.o
warning: unknown warning option '-Wno-bool-compare' [-Wunknown-warning-option]
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [-Wunknown-warning-option]
2 warnings generated.
ninja: build stopped: subcommand failed.
[1/186] Building CXX object contrib/draco/CMakeFiles/draco_io.dir/src/draco/io/stdio_file_reader.cc.o
FAILED: contrib/draco/CMakeFiles/draco_io.dir/src/draco/io/stdio_file_reader.cc.o
D:\Android_SDK\ndk\21.4.7075529\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=armv7-none-linux-androideabi21 --gcc-toolchain=D:/Android_SDK/ndk/21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64 --sysroot=D:/Android_SDK/ndk/21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot -DASSIMP_BUILD_NO_C4D_IMPORTER -DASSIMP_BUILD_NO_EXPORT -DASSIMP_BUILD_NO_M3D_EXPORTER -DASSIMP_BUILD_NO_M3D_IMPORTER -DDRACO_CMAKE=1 -DDRACO_FLAGS_SRCDIR=\"D:/WorkDir/assimp/assimp-5.2.4/contrib/draco\" -DDRACO_FLAGS_TMPDIR=\"/tmp\" -D_FILE_OFFSET_BITS=64 -Iinclude -I. -ID:/WorkDir/assimp/assimp-5.2.4/include -ID:/WorkDir/assimp/assimp-5.2.4/code -ID:/WorkDir/assimp/assimp-5.2.4/. -ID:/WorkDir/assimp/assimp-5.2.4/contrib/zlib -Icontrib/zlib -ID:/WorkDir/assimp/assimp-5.2.4/contrib/draco -ID:/WorkDir/assimp/assimp-5.2.4/contrib/draco/src -fvisibility=hidden -fno-strict-aliasing -Wall -Wno-long-long -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -frtti -Wno-c++11-narrowing -Oz -DNDEBUG  -fPIC -Wno-bool-compare -Wno-comment -Wno-maybe-uninitialized -Wno-sign-compare -Wno-unused-local-typedefs -fvisibility=default -std=gnu++11 -MD -MT contrib/draco/CMakeFiles/draco_io.dir/src/draco/io/stdio_file_reader.cc.o -MF contrib\draco\CMakeFiles\draco_io.dir\src\draco\io\stdio_file_reader.cc.o.d -o contrib/draco/CMakeFiles/draco_io.dir/src/draco/io/stdio_file_reader.cc.o -c D:/WorkDir/assimp/assimp-5.2.4/contrib/draco/src/draco/io/stdio_file_reader.cc
warning: unknown warning option '-Wno-bool-compare' [-Wunknown-warning-option]
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [-Wunknown-warning-option]
D:/WorkDir/assimp/assimp-5.2.4/contrib/draco/src/draco/io/stdio_file_reader.cc:91:48: error: use of undeclared identifier 'ftello'; did you mean 'ftell'?
  const size_t file_size = static_cast<size_t>(ftello(file_));
                                               ^~~~~~
                                               ftell
D:/Android_SDK/ndk/21.4.7075529/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/include\stdio.h:224:6: note: 'ftell' declared here
long ftell(FILE* __fp);
     ^
2 warnings and 1 error generated.
[2/186] Building CXX object contrib/draco/CMakeFiles/draco_points_dec.dir/src/draco/compression/point_cloud/algorithms/dynamic_integer_points_kd_tree_decoder.cc.o
warning: unknown warning option '-Wno-bool-compare' [-Wunknown-warning-option]
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [-Wunknown-warning-option]
2 warnings generated.
...
[14/186] Building CXX object contrib/draco/CMakeFiles/draco_compression_mesh_enc.dir/src/draco/compression/mesh/mesh_edgebreaker_encoder_impl.cc.o
warning: unknown warning option '-Wno-bool-compare' [-Wunknown-warning-option]
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [-Wunknown-warning-option]
2 warnings generated.
ninja: build stopped: subcommand failed.
sourabh-gupta-dev commented 2 years ago

Facing the same issue. @friskyliu Did you solve it?

zzyyppqq commented 2 years ago

Two solutions:

Disable _FILE_OFFSET_BITS=64 or minSdkVersion=24

  1. Remove the assimp/CMakeLists.txt ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64 )

  2. -DANDROID_NATIVE_API_LEVEL=android-24 or -DANDROID_PLATFORM=android-24

https://developer.android.com/ndk/guides/common-problems

kimkulling commented 1 year ago

You can get the prebuild so files here: https://kimkulling.itch.io/the-asset-importer-lib

danoli3 commented 1 year ago

Problem continues:

/Users/~/Library/Android/sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/fstream:952:20: error: use of undeclared identifier 'ftello'; did you mean 'ftell'?
    pos_type __r = ftello(__file_);
                   ^
/Users/~/Library/Android/sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/c++/v1/cstdio:141:9: note: 'ftell' declared here
using ::ftell;
        ^
1 error generated.
  1. Works however -DANDROID_NATIVE_API_LEVEL=android-24 or -DANDROID_PLATFORM=android-24