Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build failure when clang isn't default compiler #4

Closed
clemtaylor opened this issue Aug 4, 2018 · 18 comments
Closed

Build failure when clang isn't default compiler #4

clemtaylor opened this issue Aug 4, 2018 · 18 comments
Labels
linux Issue/feature request for Linux only

Comments

@clemtaylor
Copy link

The commands in the readme Linux section says:

Your Linux distribution might default to gcc instead of clang, if that's the case invoke cmake with the following command:

But the following command matches the one above.

I tried the obvious to set CC to /usr/bin/clang and CXX to /usr/bin/clang++ prior to running cmake. cmake completes, but the build fails with some fairly basic #include file not found errors (things like and ).

I'm building on Fedora 28 x86_64.

@bejado
Copy link
Member

bejado commented Aug 4, 2018

Whoops, looks like an issue in the documentation. Which version of clang are you using to build, and can you give the specific errors clang spits out?

@clemtaylor
Copy link
Author

I'm using clang 6.0.1.

All basic file not found errors:
../../libs/filaflat/include/filaflat/ShaderBuilder.h:20:10: fatal error: 'cstddef' file not found
../../libs/filaflat/include/filaflat/FilaflatDefs.h:21:10: fatal error: 'string' file not found
../../libs/math/include/math/TVecHelpers.h:25:10: fatal error: 'cmath' file not found
../../libs/filabridge/include/filament/SamplerInterfaceBlock.h:21:10: fatal error: 'map' file not found

I didn't look close enough to figure out how it is killing off the standard include paths.

/usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filaflat/include -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -fPIC -MD -MT libs/filaflat/CMakeFiles/filaflat.dir/src/ShaderBuilder.cpp.o -MF libs/filaflat/CMakeFiles/filaflat.dir/src/ShaderBuilder.cpp.o.d -o libs/filaflat/CMakeFiles/filaflat.dir/src/ShaderBuilder.cpp.o -c ../../libs/filaflat/src/ShaderBuilder.cpp In file included from ../../libs/filaflat/src/ShaderBuilder.cpp:17: ../../libs/filaflat/include/filaflat/ShaderBuilder.h:20:10: fatal error: 'cstddef' file not found #include <cstddef> ^~~~~~~~~ 1 error generated. [2/847] Building CXX object libs/filaflat/CMakeFiles/filaflat.dir/src/ChunkContainer.cpp.o FAILED: libs/filaflat/CMakeFiles/filaflat.dir/src/ChunkContainer.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filaflat/include -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -fPIC -MD -MT libs/filaflat/CMakeFiles/filaflat.dir/src/ChunkContainer.cpp.o -MF libs/filaflat/CMakeFiles/filaflat.dir/src/ChunkContainer.cpp.o.d -o libs/filaflat/CMakeFiles/filaflat.dir/src/ChunkContainer.cpp.o -c ../../libs/filaflat/src/ChunkContainer.cpp In file included from ../../libs/filaflat/src/ChunkContainer.cpp:17: In file included from ../../libs/filaflat/include/filaflat/ChunkContainer.h:21: ../../libs/filaflat/include/filaflat/FilaflatDefs.h:21:10: fatal error: 'string' file not found #include <string> ^~~~~~~~ 1 error generated. [3/847] Building CXX object libs/filaflat/CMakeFiles/filaflat.dir/src/Unflattener.cpp.o FAILED: libs/filaflat/CMakeFiles/filaflat.dir/src/Unflattener.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filaflat/include -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -fPIC -MD -MT libs/filaflat/CMakeFiles/filaflat.dir/src/Unflattener.cpp.o -MF libs/filaflat/CMakeFiles/filaflat.dir/src/Unflattener.cpp.o.d -o libs/filaflat/CMakeFiles/filaflat.dir/src/Unflattener.cpp.o -c ../../libs/filaflat/src/Unflattener.cpp In file included from ../../libs/filaflat/src/Unflattener.cpp:17: In file included from ../../libs/filaflat/include/filaflat/Unflattener.h:20: In file included from ../../libs/filaflat/include/filaflat/ChunkContainer.h:21: ../../libs/filaflat/include/filaflat/FilaflatDefs.h:21:10: fatal error: 'string' file not found #include <string> ^~~~~~~~ 1 error generated. [4/847] Building CXX object libs/filaflat/CMakeFiles/filaflat.dir/src/TextDictionaryReader.cpp.o FAILED: libs/filaflat/CMakeFiles/filaflat.dir/src/TextDictionaryReader.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filaflat/include -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -fPIC -MD -MT libs/filaflat/CMakeFiles/filaflat.dir/src/TextDictionaryReader.cpp.o -MF libs/filaflat/CMakeFiles/filaflat.dir/src/TextDictionaryReader.cpp.o.d -o libs/filaflat/CMakeFiles/filaflat.dir/src/TextDictionaryReader.cpp.o -c ../../libs/filaflat/src/TextDictionaryReader.cpp In file included from ../../libs/filaflat/src/TextDictionaryReader.cpp:17: In file included from ../../libs/filaflat/src/TextDictionaryReader.h:20: In file included from ../../libs/filaflat/include/filaflat/ChunkContainer.h:21: ../../libs/filaflat/include/filaflat/FilaflatDefs.h:21:10: fatal error: 'string' file not found #include <string> ^~~~~~~~ 1 error generated. [5/847] Building CXX object libs/filaflat/CMakeFiles/filaflat.dir/src/SpirvDictionaryReader.cpp.o FAILED: libs/filaflat/CMakeFiles/filaflat.dir/src/SpirvDictionaryReader.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filaflat/include -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -fPIC -MD -MT libs/filaflat/CMakeFiles/filaflat.dir/src/SpirvDictionaryReader.cpp.o -MF libs/filaflat/CMakeFiles/filaflat.dir/src/SpirvDictionaryReader.cpp.o.d -o libs/filaflat/CMakeFiles/filaflat.dir/src/SpirvDictionaryReader.cpp.o -c ../../libs/filaflat/src/SpirvDictionaryReader.cpp In file included from ../../libs/filaflat/src/SpirvDictionaryReader.cpp:17: In file included from ../../libs/filaflat/src/SpirvDictionaryReader.h:20: In file included from ../../libs/filaflat/include/filaflat/ChunkContainer.h:21: ../../libs/filaflat/include/filaflat/FilaflatDefs.h:21:10: fatal error: 'string' file not found #include <string> ^~~~~~~~ 1 error generated. [6/847] Building CXX object libs/filabridge/CMakeFiles/filabridge.dir/src/SibGenerator.cpp.o FAILED: libs/filabridge/CMakeFiles/filabridge.dir/src/SibGenerator.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -fPIC -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -MD -MT libs/filabridge/CMakeFiles/filabridge.dir/src/SibGenerator.cpp.o -MF libs/filabridge/CMakeFiles/filabridge.dir/src/SibGenerator.cpp.o.d -o libs/filabridge/CMakeFiles/filabridge.dir/src/SibGenerator.cpp.o -c ../../libs/filabridge/src/SibGenerator.cpp In file included from ../../libs/filabridge/src/SibGenerator.cpp:17: In file included from ../../libs/filabridge/include/private/filament/SibGenerator.h:20: ../../libs/filabridge/include/filament/SamplerInterfaceBlock.h:21:10: fatal error: 'map' file not found #include <map> ^~~~~ 1 error generated. [7/847] Building CXX object libs/filabridge/CMakeFiles/filabridge.dir/src/UibGenerator.cpp.o FAILED: libs/filabridge/CMakeFiles/filabridge.dir/src/UibGenerator.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -fPIC -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -MD -MT libs/filabridge/CMakeFiles/filabridge.dir/src/UibGenerator.cpp.o -MF libs/filabridge/CMakeFiles/filabridge.dir/src/UibGenerator.cpp.o.d -o libs/filabridge/CMakeFiles/filabridge.dir/src/UibGenerator.cpp.o -c ../../libs/filabridge/src/UibGenerator.cpp In file included from ../../libs/filabridge/src/UibGenerator.cpp:17: In file included from ../../libs/filabridge/include/private/filament/UibGenerator.h:20: In file included from ../../libs/filabridge/include/filament/UniformInterfaceBlock.h:20: In file included from ../../libs/filabridge/include/filament/driver/DriverEnums.h:22: In file included from ../../libs/math/include/math/vec4.h:20: In file included from ../../libs/math/include/math/vec3.h:20: In file included from ../../libs/math/include/math/vec2.h:20: ../../libs/math/include/math/TVecHelpers.h:25:10: fatal error: 'cmath' file not found #include <cmath> ^~~~~~~ 1 error generated. [8/847] Building CXX object libs/filaflat/CMakeFiles/filaflat.dir/src/MaterialChunk.cpp.o FAILED: libs/filaflat/CMakeFiles/filaflat.dir/src/MaterialChunk.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filaflat/include -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -fPIC -MD -MT libs/filaflat/CMakeFiles/filaflat.dir/src/MaterialChunk.cpp.o -MF libs/filaflat/CMakeFiles/filaflat.dir/src/MaterialChunk.cpp.o.d -o libs/filaflat/CMakeFiles/filaflat.dir/src/MaterialChunk.cpp.o -c ../../libs/filaflat/src/MaterialChunk.cpp In file included from ../../libs/filaflat/src/MaterialChunk.cpp:17: In file included from ../../libs/filaflat/src/MaterialChunk.h:20: ../../libs/filaflat/src/BlobDictionary.h:20:10: fatal error: 'vector' file not found #include <vector> ^~~~~~~~ 1 error generated. [9/847] Building CXX object libs/filabridge/CMakeFiles/filabridge.dir/src/UniformInterfaceBlock.cpp.o FAILED: libs/filabridge/CMakeFiles/filabridge.dir/src/UniformInterfaceBlock.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -fPIC -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -MD -MT libs/filabridge/CMakeFiles/filabridge.dir/src/UniformInterfaceBlock.cpp.o -MF libs/filabridge/CMakeFiles/filabridge.dir/src/UniformInterfaceBlock.cpp.o.d -o libs/filabridge/CMakeFiles/filabridge.dir/src/UniformInterfaceBlock.cpp.o -c ../../libs/filabridge/src/UniformInterfaceBlock.cpp In file included from ../../libs/filabridge/src/UniformInterfaceBlock.cpp:17: In file included from ../../libs/filabridge/include/filament/UniformInterfaceBlock.h:20: In file included from ../../libs/filabridge/include/filament/driver/DriverEnums.h:22: In file included from ../../libs/math/include/math/vec4.h:20: In file included from ../../libs/math/include/math/vec3.h:20: In file included from ../../libs/math/include/math/vec2.h:20: ../../libs/math/include/math/TVecHelpers.h:25:10: fatal error: 'cmath' file not found #include <cmath> ^~~~~~~ 1 error generated. [10/847] Building CXX object libs/filabridge/CMakeFiles/filabridge.dir/src/SamplerInterfaceBlock.cpp.o FAILED: libs/filabridge/CMakeFiles/filabridge.dir/src/SamplerInterfaceBlock.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -fPIC -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -MD -MT libs/filabridge/CMakeFiles/filabridge.dir/src/SamplerInterfaceBlock.cpp.o -MF libs/filabridge/CMakeFiles/filabridge.dir/src/SamplerInterfaceBlock.cpp.o.d -o libs/filabridge/CMakeFiles/filabridge.dir/src/SamplerInterfaceBlock.cpp.o -c ../../libs/filabridge/src/SamplerInterfaceBlock.cpp In file included from ../../libs/filabridge/src/SamplerInterfaceBlock.cpp:17: ../../libs/filabridge/include/filament/SamplerInterfaceBlock.h:21:10: fatal error: 'map' file not found #include <map> ^~~~~ 1 error generated. [11/847] Building CXX object libs/filabridge/CMakeFiles/filabridge.dir/src/SamplerBindingMap.cpp.o FAILED: libs/filabridge/CMakeFiles/filabridge.dir/src/SamplerBindingMap.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -fPIC -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -MD -MT libs/filabridge/CMakeFiles/filabridge.dir/src/SamplerBindingMap.cpp.o -MF libs/filabridge/CMakeFiles/filabridge.dir/src/SamplerBindingMap.cpp.o.d -o libs/filabridge/CMakeFiles/filabridge.dir/src/SamplerBindingMap.cpp.o -c ../../libs/filabridge/src/SamplerBindingMap.cpp In file included from ../../libs/filabridge/src/SamplerBindingMap.cpp:17: In file included from ../../libs/filabridge/include/filament/SamplerBindingMap.h:20: In file included from ../../libs/filabridge/include/filament/EngineEnums.h:20: In file included from ../../libs/utils/include/utils/bitset.h:20: ../../libs/utils/include/utils/algorithm.h:22:10: fatal error: 'functional' file not found #include <functional> ^~~~~~~~~~~~ 1 error generated. [12/847] Building CXX object libs/filaflat/CMakeFiles/filaflat.dir/src/MaterialParser.cpp.o FAILED: libs/filaflat/CMakeFiles/filaflat.dir/src/MaterialParser.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filaflat/include -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -fPIC -MD -MT libs/filaflat/CMakeFiles/filaflat.dir/src/MaterialParser.cpp.o -MF libs/filaflat/CMakeFiles/filaflat.dir/src/MaterialParser.cpp.o.d -o libs/filaflat/CMakeFiles/filaflat.dir/src/MaterialParser.cpp.o -c ../../libs/filaflat/src/MaterialParser.cpp In file included from ../../libs/filaflat/src/MaterialParser.cpp:17: In file included from ../../libs/filaflat/include/filaflat/MaterialParser.h:20: In file included from ../../libs/filabridge/include/filament/EngineEnums.h:20: In file included from ../../libs/utils/include/utils/bitset.h:20: ../../libs/utils/include/utils/algorithm.h:22:10: fatal error: 'functional' file not found #include <functional> ^~~~~~~~~~~~ 1 error generated. [13/847] Building CXX object libs/filaflat/CMakeFiles/filaflat.dir/src/ChunkInterfaceBlock.cpp.o FAILED: libs/filaflat/CMakeFiles/filaflat.dir/src/ChunkInterfaceBlock.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/filaflat/include -I../../libs/filabridge/include -I../../libs/utils/include -I../../third_party/robin-map/tnt/.. -I../../libs/math/include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -fPIC -MD -MT libs/filaflat/CMakeFiles/filaflat.dir/src/ChunkInterfaceBlock.cpp.o -MF libs/filaflat/CMakeFiles/filaflat.dir/src/ChunkInterfaceBlock.cpp.o.d -o libs/filaflat/CMakeFiles/filaflat.dir/src/ChunkInterfaceBlock.cpp.o -c ../../libs/filaflat/src/ChunkInterfaceBlock.cpp In file included from ../../libs/filaflat/src/ChunkInterfaceBlock.cpp:17: In file included from ../../libs/filaflat/src/ChunkInterfaceBlock.h:20: ../../libs/filabridge/include/filament/SamplerInterfaceBlock.h:21:10: fatal error: 'map' file not found #include <map> ^~~~~ 1 error generated. [14/847] Building CXX object libs/math/CMakeFiles/test_math.dir/tests/test_fast.cpp.o FAILED: libs/math/CMakeFiles/test_math.dir/tests/test_fast.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/math/include -I../../third_party/libgtest/tnt/../include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -pthread -MD -MT libs/math/CMakeFiles/test_math.dir/tests/test_fast.cpp.o -MF libs/math/CMakeFiles/test_math.dir/tests/test_fast.cpp.o.d -o libs/math/CMakeFiles/test_math.dir/tests/test_fast.cpp.o -c ../../libs/math/tests/test_fast.cpp In file included from ../../libs/math/tests/test_fast.cpp:19: ../../third_party/libgtest/tnt/../include/gtest/gtest.h:54:10: fatal error: 'limits' file not found #include <limits> ^~~~~~~~ 1 error generated. [15/847] Building CXX object libs/math/CMakeFiles/test_math.dir/tests/test_vec.cpp.o FAILED: libs/math/CMakeFiles/test_math.dir/tests/test_vec.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/math/include -I../../third_party/libgtest/tnt/../include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -pthread -MD -MT libs/math/CMakeFiles/test_math.dir/tests/test_vec.cpp.o -MF libs/math/CMakeFiles/test_math.dir/tests/test_vec.cpp.o.d -o libs/math/CMakeFiles/test_math.dir/tests/test_vec.cpp.o -c ../../libs/math/tests/test_vec.cpp In file included from ../../libs/math/tests/test_vec.cpp:19: ../../third_party/libgtest/tnt/../include/gtest/gtest.h:54:10: fatal error: 'limits' file not found #include <limits> ^~~~~~~~ 1 error generated. [16/847] Building CXX object third_party/libgtest/tnt/CMakeFiles/gtest.dir/__/src/gtest-all.cc.o FAILED: third_party/libgtest/tnt/CMakeFiles/gtest.dir/__/src/gtest-all.cc.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../third_party/libgtest/tnt/../include -I../../third_party/libgtest/tnt/.. -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -pthread -MD -MT third_party/libgtest/tnt/CMakeFiles/gtest.dir/__/src/gtest-all.cc.o -MF third_party/libgtest/tnt/CMakeFiles/gtest.dir/__/src/gtest-all.cc.o.d -o third_party/libgtest/tnt/CMakeFiles/gtest.dir/__/src/gtest-all.cc.o -c ../../third_party/libgtest/src/gtest-all.cc In file included from ../../third_party/libgtest/src/gtest-all.cc:39: ../../third_party/libgtest/tnt/../include/gtest/gtest.h:54:10: fatal error: 'limits' file not found #include <limits> ^~~~~~~~ 1 error generated. [17/847] Building CXX object libs/math/CMakeFiles/test_math.dir/tests/test_quat.cpp.o FAILED: libs/math/CMakeFiles/test_math.dir/tests/test_quat.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/math/include -I../../third_party/libgtest/tnt/../include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -pthread -MD -MT libs/math/CMakeFiles/test_math.dir/tests/test_quat.cpp.o -MF libs/math/CMakeFiles/test_math.dir/tests/test_quat.cpp.o.d -o libs/math/CMakeFiles/test_math.dir/tests/test_quat.cpp.o -c ../../libs/math/tests/test_quat.cpp ../../libs/math/tests/test_quat.cpp:18:10: fatal error: 'random' file not found #include <random> ^~~~~~~~ 1 error generated. [18/847] Building CXX object libs/math/CMakeFiles/test_math.dir/tests/test_mat.cpp.o FAILED: libs/math/CMakeFiles/test_math.dir/tests/test_mat.cpp.o /usr/bin/clang++ -DFILAMENT_DRIVER_SUPPORTS_VULKAN -I../../libs/math/include -I../../third_party/libgtest/tnt/../include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -stdlib=libc++ -fcolor-diagnostics -O2 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -pthread -MD -MT libs/math/CMakeFiles/test_math.dir/tests/test_mat.cpp.o -MF libs/math/CMakeFiles/test_math.dir/tests/test_mat.cpp.o.d -o libs/math/CMakeFiles/test_math.dir/tests/test_mat.cpp.o -c ../../libs/math/tests/test_mat.cpp In file included from ../../libs/math/tests/test_mat.cpp:17: ../../third_party/libgtest/tnt/../include/gtest/gtest.h:54:10: fatal error: 'limits' file not found #include <limits> ^~~~~~~~ 1 error generated.

@guillaumechereau
Copy link

I experience the problem on ubuntu 18.04.

@romainguy
Copy link
Collaborator

Thanks for reporting this issue. We only support compiling with clang and you need to have the clang STL installed (it should be mentioned in README.md, you need to install libc++-dev and possibly libc++abi-dev).

I'll fix the docs, it's supposed to prefix cmake with CC=… CXX=… like you did.

@romainguy
Copy link
Collaborator

I just updated the README, please let me know if installing libc++-dev fixes the other issue for you.

@guillaumechereau
Copy link

On ubuntu 18.04, installing libc++-dev and libc++abi-dev makes the compilation work. Now I get link errors though:

[ 13%] Linking CXX executable test_math
CMakeFiles/test_math.dir/tests/test_fast.cpp.o: In function `__clang_call_terminate':                                                                                                                              
test_fast.cpp:(.text.__clang_call_terminate[__clang_call_terminate]+0x2): undefined reference to `__cxa_begin_catch'

> clang++ --version
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
Target: x86_64-pc-linux-gnu

@meuns
Copy link

meuns commented Aug 4, 2018

Same issue here using the same setup.

@romainguy
Copy link
Collaborator

You can fix this by passing -DFILAMENT_REQUIRES_CXXABI=true to cmake. We use this is our CI environment for the same reason, I just don't know in what cases it's sometimes necessary. What this flag does is add -lc++abi to link against libc++abi instead of GCC's runtime.

@romainguy
Copy link
Collaborator

romainguy commented Aug 5, 2018

BTW if anybody know how to make this work properly, I'm all ears. I made linking against libc++abi optional because on the Linux distributions we use at work (Debian Rodete) using the flag breaks compilation. I do need to use it on Ubuntu 14 (you can see what we do for Ubuntu 14 in build/linux/ci-common.sh) for continuous builds though. Not being a daily Linux user I'm not entirely sure what the problem is.

@clemtaylor
Copy link
Author

I did manage to get the release build to link on fedora by commenting out the -static-libgcc -static-libstdc++ in the CMakeLists.txt and using the -DFILAMENT_REQUIRES_CXXABI=true flag for cmake (unclear if that was needed).

It is unclear why it wasn't finding the static libraries (I installed libstdc++-static-8.1.1-5.fc28.x86_64).

My initial problem was caused by a missing libstdc++ devel package (I just assumed it had be installed previously).

@romainguy
Copy link
Collaborator

The static link is there only for us when we need to distribute binaries. For your own machine... :))

@thendrix
Copy link

thendrix commented Aug 5, 2018

Same issue on Ubuntu 18.04, but work around resolved it. As for a proper fix I didn't have enough free time to take a look.

Why do development on Ubuntu 14.04? It would seem to be easier to do Vulkan dev on a distro that's not so close to EOL. Even its replacement Ubuntu 16.04 is going maintenance only this year (2018).

https://www.ubuntu.com/info/release-end-of-life

@RoryDungan
Copy link

Just got the build to work on Ubuntu 18.04. In addition to following the instructions in the readme for setting the compiler to Clang, I needed to pass the -DFILAMENT_REQUIRES_CXXABI=true flag and install libxi-dev, which seems to be required by the copy of SDL2 in the third_party directory.

Might be worth adding libxi-dev, cmake and clang to the list of dependencies, although it's fairly obvious from reading the rest of the readme that those last two are needed.

@romainguy
Copy link
Collaborator

@thendrix This particular CI infrastructure uses Ubuntu 14, I do not control this. We actually develop on Debian Rodete.

@RoryDungan The README already mentions that cmake and clang are required (they're the first listed requirements :). Good catch about libxi-dev, I'll add it to the README.

@cgmb
Copy link
Contributor

cgmb commented Aug 15, 2018

It would be useful to check the minimum versions in the CMake. Somehow I missed that in the docs. It took a few tweaks to build on Ubuntu 16.04. Starting with d9ba399, I followed these steps:

# install dependencies
sudo apt install cmake ninja-build clang-6.0 libglu1-mesa-dev libc++-dev libc++abi-dev libxi-dev

# apply patch to fix compile/link errors
git apply <<'EOF'
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8ca0d25..5fa5c27 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -74,13 +74,14 @@ endif()
 
 if (LINUX)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem /usr/include/libcxxabi")
     if (FILAMENT_REQUIRES_CXXABI)
         # Required in CI environment with custom libc++ and libc++abi
         link_libraries("-lc++abi")
     endif()
     # To distribute our binaries, we must remove the dependency on libc++ and libgcc.
     if (CMAKE_BUILD_TYPE STREQUAL "Release")
-        link_libraries("-static-libgcc -static-libstdc++")
+#        link_libraries("-static-libgcc -static-libstdc++")
     endif()
 else()
     if (FILAMENT_REQUIRES_CXXABI)
EOF

# configure
CC=/usr/bin/clang-6.0 CXX=/usr/bin/clang++-6.0 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=out/release/filament -DFILAMENT_REQUIRES_CXXABI=true -H. -Bout/cmake-release -G Ninja

# build
ninja -C out/cmake-release

@romainguy
Copy link
Collaborator

The README does specify that clang 5.0 is the minimum.

@cgmb
Copy link
Contributor

cgmb commented Aug 15, 2018

Opps. I saw that just after I posted and I edited my comment, but you're way too fast!

@romainguy
Copy link
Collaborator

Thanks to @cgmb the readme now checks whether clang is the compiler and that it is the right version.

pixelflinger added a commit that referenced this issue Dec 14, 2022
pixelflinger added a commit that referenced this issue Dec 14, 2022
plepers pushed a commit to plepers/filament that referenced this issue Dec 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
linux Issue/feature request for Linux only
Projects
None yet
Development

No branches or pull requests

8 participants