最近,苹果发布了一个库,可以使用C++直接使用Metal。我在网上找到的示例(https://github.com/moritzhof/metal-cpp-examples), 如果我复制源代码并按照苹果(https://developer.apple.com/metal/cpp/)在Xcode中概述的步骤操作,它可以正常工作。为避免任何“隐藏”的设置,我没有使用包含的Xcode项目文件。
现在,我正在尝试使用这个CMakeLists.txt来构建同样的示例:
现在似乎返回了空指针。有什么原因和如何解决?
现在,我正在尝试使用这个CMakeLists.txt来构建同样的示例:
cmake_minimum_required(VERSION 3.8)
project(HelloWorld)
set(CMAKE_CXX_STANDARD 17)
include_directories(${PROJECT_SOURCE_DIR}/metal-cpp)
set(SOURCE_FILES metal-cpp-test/main.cpp metal-cpp-test/metal_adder.cpp)
add_executable(program ${SOURCE_FILES})
# specify which libraries to connect
# target_link_libraries(program ${METAL})
# target_link_libraries(program ${FOUNDATION})
# target_link_libraries(program ${QUARTZCORE})
find_library(METAL Metal)
find_library(FOUNDATION Foundation)
find_library(QUARTZCORE QuartzCore)
target_link_libraries(program stdc++ "-framework Metal" "-framework Foundation" "-framework QuartzCore" objc)
它成功编译,但是这一行
auto lib = _device->newDefaultLibrary();
现在似乎返回了空指针。有什么原因和如何解决?