google / filament

Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
https://google.github.io/filament/
Apache License 2.0
17.74k stars 1.88k forks source link

Build samples FAILED with clang 9.0.1 on Linux #7012

Closed IamYuZhiqiang closed 1 year ago

IamYuZhiqiang commented 1 year ago

Trying to build linux samples with "./build.sh release" , but failed here:

Building release in out/cmake-release...
-- The C compiler identification is Clang 9.0.1
-- The CXX compiler identification is Clang 9.0.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/yuzhiqiang.yzq/workspace/clang/clang+llvm-9.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/yuzhiqiang.yzq/workspace/clang/clang+llvm-9.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- The ASM compiler identification is Clang with GNU-like command-line
-- Found assembler: /home/yuzhiqiang.yzq/workspace/clang/clang+llvm-9.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang
-- DFG LUT size set to 128x128
-- Found Python3: /usr/bin/python3.5 (found version "3.5.2") found components: Interpreter 
-- Configuring done (5.2s)
-- Generating done (0.4s)
[1/1338] Building CXX object third_party/libgtest/tnt/CMakeFiles/gtest.dir/__/googletest/src/gtest-all.cc.o
[2/1338] Building CXX object libs/camutils/CMakeFiles/camutils.dir/src/Bookmark.cpp.o
[3/1338] Building CXX object libs/camutils/CMakeFiles/camutils.dir/src/Manipulator.cpp.o
[4/1338] Building CXX object libs/camutils/CMakeFiles/test_camutils.dir/tests/test_camutils.cpp.o
[5/1338] Building CXX object libs/filabridge/CMakeFiles/filabridge.dir/src/Variant.cpp.o
[6/1338] Building CXX object libs/filabridge/CMakeFiles/filabridge.dir/src/SamplerInterfaceBlock.cpp.o
[7/1338] Building CXX object libs/filabridge/CMakeFiles/filabridge.dir/src/BufferInterfaceBlock.cpp.o
[8/1338] Building CXX object libs/filaflat/CMakeFiles/filaflat.dir/src/ChunkContainer.cpp.o
[9/1338] Building CXX object libs/filaflat/CMakeFiles/filaflat.dir/src/DictionaryReader.cpp.o
[10/1338] Building CXX object libs/filaflat/CMakeFiles/filaflat.dir/src/MaterialChunk.cpp.o
[11/1338] Building CXX object libs/filaflat/CMakeFiles/filaflat.dir/src/Unflattener.cpp.o
[12/1338] Building CXX object libs/ibl/CMakeFiles/ibl.dir/src/Image.cpp.o
[13/1338] Building CXX object libs/geometry/CMakeFiles/geometry.dir/src/SurfaceOrientation.cpp.o
[14/1338] Building CXX object libs/geometry/CMakeFiles/geometry.dir/src/Transcoder.cpp.o
[15/1338] Building CXX object libs/geometry/CMakeFiles/test_transcoder.dir/tests/test_transcoder.cpp.o
[16/1338] Building CXX object libs/imageio/CMakeFiles/imageio.dir/src/ImageEncoder.cpp.o
[17/1338] Building CXX object libs/ibl/CMakeFiles/ibl.dir/src/Cubemap.cpp.o
[18/1338] Building CXX object libs/ibl/CMakeFiles/ibl.dir/src/CubemapIBL.cpp.o
[19/1338] Building CXX object libs/ibl/CMakeFiles/ibl.dir/src/CubemapSH.cpp.o`
...
[1297/1338] Linking CXX executable samples/viewtest
[1298/1338] Linking CXX executable samples/suzanne
[1299/1338] Linking CXX executable samples/texturedquad
[1300/1338] Linking CXX executable samples/vbotest
FAILED: : && /home/yuzhiqiang.yzq/workspace/clang/clang+llvm-9.0.1-x86_64-linux-gnu-ubuntu-16.04/bin/clang++ -stdlib=libc++ -std=c++17 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -Wno-deprecated-declarations -fPIC -fvisibility=hidden -O3 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -Wl,--gc-sections -pthread samples/CMakeFiles/strobecolor.dir/strobecolor.cpp.o -o samples/strobecolor  samples/libsample-resources.a  libs/filamentapp/libfilamentapp.a  third_party/libassimp/tnt/libassimp.a  third_party/libz/tnt/libz.a  libs/camutils/libcamutils.a  libs/filagui/libfilagui.a  libs/iblprefilter/libfilament-iblprefilter.a  third_party/getopt/libgetopt.a  third_party/imgui/tnt/libimgui.a  third_party/libsdl2/tnt/libsdl2.a  libs/gltfio/libgltfio.a  libs/filamat/libfilamat.a  shaders/libshaders.a  -Wl,--start-group  third_party/glslang/tnt/SPIRV/libSPIRV.a  third_party/glslang/tnt/glslang/libglslang.a  third_party/glslang/tnt/OGLCompilersDLL/libOGLCompiler.a  third_party/glslang/tnt/glslang/OSDependent/Unix/libOSDependent.a  third_party/spirv-tools/source/opt/libSPIRV-Tools-opt.a  third_party/spirv-tools/source/libSPIRV-Tools.a  -lrt  third_party/spirv-cross/tnt/libspirv-cross-glsl.a  third_party/spirv-cross/tnt/libspirv-cross-msl.a  third_party/spirv-cross/tnt/libspirv-cross-core.a  -Wl,--end-group  libs/gltfio/libgltfio_core.a  libs/geometry/libgeometry.a  libs/ktxreader/libktxreader.a  filament/libfilament.a  filament/backend/libbackend.a  libs/bluegl/libbluegl.a  libs/bluevk/libbluevk.a  filament/backend/libvkshaders.a  libs/filaflat/libfilaflat.a  third_party/smol-v/tnt/libsmol-v.a  libs/ibl/libibl-lite.a  -Wl,--exclude-libs,bluegl  libs/image/libimage.a  third_party/basisu/tnt/libbasis_transcoder.a  third_party/stb/tnt/libstb.a  libs/uberz/libuberzlib.a  libs/filabridge/libfilabridge.a  libs/math/libmath.a  libs/utils/libutils.a  -ldl  third_party/basisu/tnt/libzstd.a  third_party/draco/tnt/libdracodec.a  third_party/meshoptimizer/tnt/libmeshoptimizer.a  libs/filamentapp/libfilamentapp-resources.a && :
third_party/libsdl2/tnt/libsdl2.a(SDL_dynapi.c.o): In function `SDL_DYNAPI_entry':
SDL_dynapi.c:(.text+0x3190): undefined reference to `SDL_GetBasePath_REAL'
SDL_dynapi.c:(.text+0x319b): undefined reference to `SDL_GetPrefPath_REAL'
SDL_dynapi.c:(.text+0x3649): undefined reference to `SDL_LoadObject_REAL'
SDL_dynapi.c:(.text+0x3654): undefined reference to `SDL_LoadFunction_REAL'
SDL_dynapi.c:(.text+0x365f): undefined reference to `SDL_UnloadObject_REAL'
SDL_dynapi.c:(.text+0x421e): undefined reference to `SDL_GetTicks_REAL'
SDL_dynapi.c:(.text+0x4223): undefined reference to `SDL_GetPerformanceFrequency_REAL'
SDL_dynapi.c:(.text+0x422d): undefined reference to `SDL_GetPerformanceCounter_REAL'
SDL_dynapi.c:(.text+0x4249): undefined reference to `SDL_Delay_REAL'
third_party/libsdl2/tnt/libsdl2.a(SDL_events.c.o): In function `SDL_WaitEventTimeout_REAL':
SDL_events.c:(.text+0xa73): undefined reference to `SDL_GetTicks_REAL'
SDL_events.c:(.text+0xade): undefined reference to `SDL_GetTicks_REAL'
SDL_events.c:(.text+0xaf4): undefined reference to `SDL_Delay_REAL'
SDL_events.c:(.text+0xb69): undefined reference to `SDL_Delay_REAL'

Thanks for taking a look!

poweifeng commented 1 year ago

I am able to build on ubuntu 20.04 + clang-9. I'm not sure how we can help since your setup seems to have some custom components (clang-9 is not part of ubuntu 16.04 standard repo for example).