3
我試圖用GLFW3.2運行基本福爾康測試:福爾康和GLFW - glfwVulkanSupported()總是返回false
#include <vulkan/vulkan.h>
#include <GLFW/glfw3.h>
#include <iostream>
int main(int argc, char *argv[])
{
if (glfwVulkanSupported())
{
std::cout << "vulkan supported !" << std::endl;
}
else
{
std::cout << "vulkan NOT supported !" << std::endl;
}
return 0;
}
我所要建造使用下面的cmake:
cmake_minimum_required(VERSION 3.5.1)
project(vktest)
set (CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_COMPILER "/usr/bin/g++-4.9")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
find_package(Vulkan REQUIRED)
find_package(glfw3 3.2 REQUIRED)
include_directories(${Vulkan_INCLUDE_DIRS})
message("kek")
message(${Vulkan_INCLUDE_DIRS})
message(${Vulkan_LIBRARIES})
message(${Vulkan_LIBRARY})
add_executable(vktest vulkanTest.cpp)
target_link_libraries(vktest ${Vulkan_LIBRARIES})
target_link_libraries(vktest glfw)
建設這個作品很好。
但是,當我運行程序,我總是得到在else語句。
我安裝nvidia的最後一個驅動程序,lunarg的福爾康SDK具有以下 環境變量:
export VULKAN_SDK=/home/mathias/vulkan/VulkanSDK/1.0.42.2/x86_64
set PATH $VULKAN_SDK/bin $PATH
set LD_LIBRARY_PATH $VULKAN_SDK/lib $LD_LIBRARY_PATH
set VK_LAYER_PATH $VULKAN_SDK/etc/explicit_layer.d
而且我可以運行立方體的例子。
任何想法,爲什麼它永遠不會返回true?
glfw文檔告訴要麼像您那樣定義宏,要麼在glfw頭之前包含vulkan頭。出於某種原因,我第一次嘗試第二個,但只定義宏似乎工作。所以這對我來說都很好,謝謝! – Mathias
@Mathias可能會根據實現情況而定。此API非常年輕,可能有需要解決方法的版本。同樣,在較舊的VIsual Studio庫中,爲了使字符串正確地與iostream一起工作,其中一個在標頭之後包含 ..已修復。我使用了Khronos的老項目vulkan-hpp頭文件,這可能是當時唯一的方法。 –
Swift