Closed Lephar closed 2 months ago
I'm not sure this is a Vulkan-Hpp problem; your compilation error says as much:
[build] In file included from /home/arch/Test/src/Main.cpp:1:
[build] In file included from /usr/include/vulkan/vulkan.hpp:14:
vulkan.hpp:14
is #include <string>
.
Narrowing down the problem leads to
#include <string>
int main() { return 0; }
Try to compile that and see if it works; I am guessing it won't. You say you're using Clang 17.0.6, and you have GCC 14.1.1. It is possible that Clang 17 is incompatible with libstdc++ 14.1.1 (the latter is several months newer).
As a workaround, you could compile with the LLVM C++ standard library by passing in -stdlib=libc++
.
I'm not sure this is a Vulkan-Hpp problem; your compilation error says as much: ``` [build] In file included from /home/arch/Test/src/Main.cpp:1: [build] In file included from /usr/include/vulkan/vulkan.hpp:14: ``` `vulkan.hpp:14` is `#include`. Narrowing down the problem leads to ``` #include int main() { return 0; } ``` Try to compile that and see if it works; I am guessing it won't. You say you're using Clang 17.0.6, and you have GCC 14.1.1. It is possible that Clang 17 is incompatible with libstdc++ 14.1.1 (the latter is several months newer).
I tried that before posting but forgot to mention. It actually compiles just fine, I have no idea why the compiler points to #include <string>
in the vulkan.hpp
.
As a workaround, you could compile with the LLVM C++ standard library by passing in
-stdlib=libc++
.
Your suggestion also works. It may point to an incompatibility indeed.
So it seems, this issue is resolved (at least regarding Vulkan-Hpp)?
I don't think so, it's the #include<string>
one that compiles, not the #include<vulkan/vulkan.hpp>
It's resolved after updating Clang and the toolchain to 18.1.8. It was indeed caused by incompatible standard library.
With Vulkan Headers 1.3.285 and Clang 17.0.6 (and with CMake 3.29.3 and Ninja 1.12.1 if that makes any difference), just including
vulkan.hpp
is a compilation error. Everything worked as expected until last week, so it could be caused by any of them. GCC (14.1.1) compiles just fine,vulkan.h
also compiles fine with both Clang and GCC. As withvulkan.hpp
,vulkan_raii.hpp
is also affected by this. Here is a simple test code and its error output: