该问题可能是由于在引用时未包括相应的框架而导致的。解决方法是在项目的Build Phases标签中添加Metal.framework和MetalPerformanceShaders.framework框架。
具体示例代码:
#include
using namespace std;
int main() { MTLDevice* device = MTLCreateSystemDefaultDevice(); uint32_t count = MTLGetDeviceCount(); MTLDevice** allDevices = new MTLDevice*[count]; MTL::CopyAllDevices(allDevices); for (uint32_t i = 0; i < count; i++) { MTLDevice* currentDevice = allDevices[i]; cout << "Device Name: " << currentDevice->GetName() << endl; } delete[] allDevices; return 0; }