你好,我在编译的时候出现如下错误,请问是什么原因呢?
b-2.0.so.0, not found (try using -rpath or -rpath-link)
libVisionEngine.a(zqlandmarker.cpp.o):在函数‘mirror::ZQLandmarker::ExtractKeypoints(cv::Mat const&, cv::Rect_ const&, std::vector<cv::Point_, std::allocator<cv::Point_ > >)’中:
/home/skyids/PycharmProjects/ncnn_example/src/face/landmarker/zqlandmarker/zqlandmarker.cpp:59:对‘ncnn::Extractor::extract(char const, ncnn::Mat&)’未定义的引用
libVisionEngine.a(mtcnn.cpp.o):在函数‘mirror::Mtcnn::RDetect(ncnn::Mat const&, std::vector<mirror::FaceInfo, std::allocatormirror::FaceInfo > const&, std::vector<mirror::FaceInfo, std::allocatormirror::FaceInfo >)’中:
/home/skyids/PycharmProjects/ncnn_example/src/face/detecter/mtcnn/mtcnn.cpp:188:对‘ncnn::Extractor::extract(char const, ncnn::Mat&)’未定义的引用
/home/skyids/PycharmProjects/ncnn_example/src/face/detecter/mtcnn/mtcnn.cpp:189:对‘ncnn::Extractor::extract(char const*, ncnn::Mat&)’未定义的引用
libVisionEngine.a(mtcnn.cpp.o):在函数‘mirror::Mtcnn::PDetect(ncnn::Mat const&, std::vector<mirror::FaceInfo, std::allocatormirror::FaceInfo >)’中:
/home/skyids/PycharmProjects/ncnn_example/src/face/detecter/mtcnn/mtcnn.cpp:133:对‘ncnn::Extractor::extract(char const, ncnn::Mat&)’未定义的引用
/home/skyids/PycharmProjects/ncnn_example/src/face/detecter/mtcnn/mtcnn.cpp:134:对‘ncnn::Extractor::extract(char const*, ncnn::Mat&)’未定义的引用
libVisionEngine.a(mtcnn.cpp.o):/home/skyids/PycharmProjects/ncnn_example/src/face/detecter/mtcnn/mtcnn.cpp:225: 跟着更多未定义的参考到 ncnn::Extractor::extract(char const*, ncnn::Mat&)
../../src/../lib/libncnn.a(pipelinecache.cpp.o):在函数‘ncnn::PipelineCache::clear()’中:
pipelinecache.cpp:(.text+0x320):对‘vkDestroyPipeline’未定义的引用
pipelinecache.cpp:(.text+0x33b):对‘vkDestroyPipelineLayout’未定义的引用
pipelinecache.cpp:(.text+0x356):对‘vkDestroyDescriptorSetLayout’未定义的引用
pipelinecache.cpp:(.text+0x370):对‘vkDestroyShaderModule’未定义的引用
../../src/../lib/libncnn.a(pipelinecache.cpp.o):在函数‘ncnn::PipelineCache::new_pipeline(VkShaderModule_T*, ncnn::ShaderInfo const&, std::vector<ncnn::vk_specialization_type, std::allocatorncnn::vk_specialization_type > const&, VkDescriptorSetLayout_T**, VkPipelineLayout_T**, VkPipeline_T**, VkDescriptorUpdateTemplate_T**) const’中:
pipelinecache.cpp:(.text+0x666):对‘vkDestroyPipeline’未定义的引用
pipelinecache.cpp:(.text+0x681):对‘vkDestroyPipelineLayout’未定义的引用
pipelinecache.cpp:(.text+0x6a1):对‘vkDestroyDescriptorSetLayout’未定义的引用
../../src/../lib/libncnn.a(pipelinecache.cpp.o):在函数‘ncnn::PipelineCache::get_pipeline(unsigned int const*, unsigned long, std::vector<ncnn::vk_specialization_type, std::allocatorncnn::vk_specialization_type > const&, unsigned int, unsigned int, unsigned int, VkShaderModule_T**, VkDescriptorSetLayout_T**, VkPipelineLayout_T**, VkPipeline_T**, VkDescriptorUpdateTemplate_T**, ncnn::ShaderInfo&) const’中:
pipelinecache.cpp:(.text+0xdd8):对‘vkDestroyShaderModule’未定义的引用
../../src/../lib/libncnn.a(pipelinecache.cpp.o):在函数‘ncnn::PipelineCache::get_pipeline(int, ncnn::Option const&, std::vector<ncnn::vk_specialization_type, std::allocatorncnn::vk_specialization_type > const&, unsigned int, unsigned int, unsigned int, VkShaderModule_T**, VkDescriptorSetLayout_T**, VkPipelineLayout_T**, VkPipeline_T**, VkDescriptorUpdateTemplate_T**, ncnn::ShaderInfo&) const’中:
pipelinecache.cpp:(.text+0x1314):对‘vkDestroyShaderModule’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkWeightStagingAllocator::fastFree(ncnn::VkBufferMemory*)’中:
allocator.cpp:(.text+0xbc):对‘vkUnmapMemory’未定义的引用
allocator.cpp:(.text+0xd1):对‘vkDestroyBuffer’未定义的引用
allocator.cpp:(.text+0xe7):对‘vkFreeMemory’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkWeightAllocator::clear()’中:
allocator.cpp:(.text+0x146):对‘vkDestroyBuffer’未定义的引用
allocator.cpp:(.text+0x15c):对‘vkFreeMemory’未定义的引用
allocator.cpp:(.text+0x196):对‘vkUnmapMemory’未定义的引用
allocator.cpp:(.text+0x1d6):对‘vkDestroyBuffer’未定义的引用
allocator.cpp:(.text+0x1ec):对‘vkFreeMemory’未定义的引用
allocator.cpp:(.text+0x226):对‘vkUnmapMemory’未定义的引用
allocator.cpp:(.text+0x276):对‘vkFreeMemory’未定义的引用
allocator.cpp:(.text+0x2d6):对‘vkFreeMemory’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkStagingAllocator::clear()’中:
allocator.cpp:(.text+0x3b5):对‘vkUnmapMemory’未定义的引用
allocator.cpp:(.text+0x3cb):对‘vkDestroyBuffer’未定义的引用
allocator.cpp:(.text+0x3e2):对‘vkFreeMemory’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkAllocator::invalidate(ncnn::VkBufferMemory*)’中:
allocator.cpp:(.text+0x58c):对‘vkInvalidateMappedMemoryRanges’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkAllocator::flush(ncnn::VkBufferMemory*)’中:
allocator.cpp:(.text+0x68c):对‘vkFlushMappedMemoryRanges’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkWeightAllocator::fastFree(ncnn::VkImageMemory*)’中:
allocator.cpp:(.text+0x70e):对‘vkDestroyImageView’未定义的引用
allocator.cpp:(.text+0x723):对‘vkDestroyImage’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkBlobAllocator::clear()’中:
allocator.cpp:(.text+0x77e):对‘vkDestroyBuffer’未定义的引用
allocator.cpp:(.text+0x795):对‘vkFreeMemory’未定义的引用
allocator.cpp:(.text+0x7d4):对‘vkUnmapMemory’未定义的引用
allocator.cpp:(.text+0x85f):对‘vkFreeMemory’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkStagingAllocator::~VkStagingAllocator()’中:
allocator.cpp:(.text+0x103d):对‘vkUnmapMemory’未定义的引用
allocator.cpp:(.text+0x1052):对‘vkDestroyBuffer’未定义的引用
allocator.cpp:(.text+0x1068):对‘vkFreeMemory’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkStagingAllocator::~VkStagingAllocator()’中:
allocator.cpp:(.text+0x133d):对‘vkUnmapMemory’未定义的引用
allocator.cpp:(.text+0x1353):对‘vkDestroyBuffer’未定义的引用
allocator.cpp:(.text+0x136a):对‘vkFreeMemory’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkStagingAllocator::fastMalloc(unsigned long)’中:
allocator.cpp:(.text+0x1505):对‘vkCreateBuffer’未定义的引用
allocator.cpp:(.text+0x1531):对‘vkGetBufferMemoryRequirements’未定义的引用
allocator.cpp:(.text+0x1580):对‘vkAllocateMemory’未定义的引用
allocator.cpp:(.text+0x15a7):对‘vkBindBufferMemory’未定义的引用
allocator.cpp:(.text+0x15cb):对‘vkMapMemory’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkWeightStagingAllocator::fastMalloc(unsigned long)’中:
allocator.cpp:(.text+0x1757):对‘vkCreateBuffer’未定义的引用
allocator.cpp:(.text+0x1782):对‘vkGetBufferMemoryRequirements’未定义的引用
allocator.cpp:(.text+0x17d0):对‘vkAllocateMemory’未定义的引用
allocator.cpp:(.text+0x17f6):对‘vkBindBufferMemory’未定义的引用
allocator.cpp:(.text+0x181a):对‘vkMapMemory’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkBlobAllocator::fastFree(ncnn::VkImageMemory*)’中:
allocator.cpp:(.text+0x1b88):对‘vkDestroyImageView’未定义的引用
allocator.cpp:(.text+0x1b9e):对‘vkDestroyImage’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkAllocator::create_buffer(unsigned long, unsigned int)’中:
allocator.cpp:(.text+0x2051):对‘vkCreateBuffer’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkAllocator::allocate_memory(unsigned long, unsigned int)’中:
allocator.cpp:(.text+0x2110):对‘vkAllocateMemory’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkAllocator::allocate_dedicated_memory(unsigned long, unsigned int, VkImage_T*, VkBuffer_T*)’中:
allocator.cpp:(.text+0x21ec):对‘vkAllocateMemory’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkAllocator::create_image(int, int, int, VkFormat, VkImageTiling, unsigned int)’中:
allocator.cpp:(.text+0x230e):对‘vkCreateImage’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkAllocator::create_imageview(VkImage_T*, VkFormat)’中:
allocator.cpp:(.text+0x242f):对‘vkCreateImageView’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkBlobAllocator::fastMalloc(unsigned long)’中:
allocator.cpp:(.text+0x2a85):对‘vkCreateBuffer’未定义的引用
allocator.cpp:(.text+0x2ab8):对‘vkGetBufferMemoryRequirements’未定义的引用
allocator.cpp:(.text+0x2b0c):对‘vkAllocateMemory’未定义的引用
allocator.cpp:(.text+0x2b3b):对‘vkBindBufferMemory’未定义的引用
allocator.cpp:(.text+0x2d06):对‘vkMapMemory’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkBlobAllocator::fastMalloc(int, int, int, unsigned long, int)’中:
allocator.cpp:(.text+0x2fdc):对‘vkCreateImage’未定义的引用
allocator.cpp:(.text+0x3015):对‘vkGetImageMemoryRequirements’未定义的引用
allocator.cpp:(.text+0x3132):对‘vkAllocateMemory’未定义的引用
allocator.cpp:(.text+0x3166):对‘vkBindImageMemory’未定义的引用
allocator.cpp:(.text+0x3221):对‘vkCreateImageView’未定义的引用
allocator.cpp:(.text+0x340b):对‘vkBindImageMemory’未定义的引用
allocator.cpp:(.text+0x34c8):对‘vkCreateImageView’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkWeightAllocator::fastMalloc(unsigned long)’中:
allocator.cpp:(.text+0x398b):对‘vkCreateBuffer’未定义的引用
allocator.cpp:(.text+0x39d9):对‘vkGetBufferMemoryRequirements’未定义的引用
allocator.cpp:(.text+0x3a3a):对‘vkAllocateMemory’未定义的引用
allocator.cpp:(.text+0x3a69):对‘vkBindBufferMemory’未定义的引用
allocator.cpp:(.text+0x3bad):对‘vkMapMemory’未定义的引用
allocator.cpp:(.text+0x3d03):对‘vkAllocateMemory’未定义的引用
allocator.cpp:(.text+0x3d32):对‘vkBindBufferMemory’未定义的引用
allocator.cpp:(.text+0x3e20):对‘vkMapMemory’未定义的引用
../../src/../lib/libncnn.a(allocator.cpp.o):在函数‘ncnn::VkWeightAllocator::fastMalloc(int, int, int, unsigned long, int)’中:
allocator.cpp:(.text+0x4162):对‘vkCreateImage’未定义的引用
allocator.cpp:(.text+0x41bd):对‘vkGetImageMemoryRequirements’未定义的引用
allocator.cpp:(.text+0x42ef):对‘vkAllocateMemory’未定义的引用
allocator.cpp:(.text+0x432f):对‘vkBindImageMemory’未定义的引用
allocator.cpp:(.text+0x43f6):对‘vkCreateImageView’未定义的引用
allocator.cpp:(.text+0x45b5):对‘vkBindImageMemory’未定义的引用
allocator.cpp:(.text+0x467e):对‘vkCreateImageView’未定义的引用
allocator.cpp:(.text+0x47e0):对‘vkAllocateMemory’未定义的引用
allocator.cpp:(.text+0x481e):对‘vkBindImageMemory’未定义的引用
allocator.cpp:(.text+0x48e5):对‘vkCreateImageView’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::~VkCompute()’中:
command.cpp:(.text+0x7a):对‘vkDestroyImageView’未定义的引用
command.cpp:(.text+0x90):对‘vkDestroyImage’未定义的引用
command.cpp:(.text+0xf4):对‘vkFreeDescriptorSets’未定义的引用
command.cpp:(.text+0x115):对‘vkDestroyDescriptorPool’未定义的引用
command.cpp:(.text+0x145):对‘vkDestroyFence’未定义的引用
command.cpp:(.text+0x162):对‘vkFreeCommandBuffers’未定义的引用
command.cpp:(.text+0x178):对‘vkDestroyCommandPool’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::submit_and_wait()’中:
command.cpp:(.text+0x50c):对‘vkEndCommandBuffer’未定义的引用
command.cpp:(.text+0x598):对‘vkQueueSubmit’未定义的引用
command.cpp:(.text+0x5dd):对‘vkWaitForFences’未定义的引用
command.cpp:(.text+0x772):对‘vkBeginCommandBuffer’未定义的引用
command.cpp:(.text+0x7f6):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x85e):对‘vkCmdDispatch’未定义的引用
command.cpp:(.text+0x87e):对‘vkCmdPushConstants’未定义的引用
command.cpp:(.text+0x8ad):对‘vkCmdBindDescriptorSets’未定义的引用
command.cpp:(.text+0x8d4):对‘vkCmdCopyBuffer’未定义的引用
command.cpp:(.text+0x91c):对‘vkCmdBindPipeline’未定义的引用
command.cpp:(.text+0x940):对‘vkCmdCopyImageToBuffer’未定义的引用
command.cpp:(.text+0x978):对‘vkCmdCopyBufferToImage’未定义的引用
command.cpp:(.text+0x9af):对‘vkCmdCopyImage’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::reset()’中:
command.cpp:(.text+0xcbe):对‘vkDestroyImageView’未定义的引用
command.cpp:(.text+0xcd4):对‘vkDestroyImage’未定义的引用
command.cpp:(.text+0xd80):对‘vkFreeDescriptorSets’未定义的引用
command.cpp:(.text+0xda1):对‘vkDestroyDescriptorPool’未定义的引用
command.cpp:(.text+0xde9):对‘vkResetCommandBuffer’未定义的引用
command.cpp:(.text+0xe0a):对‘vkResetFences’未定义的引用
command.cpp:(.text+0xe79):对‘vkBeginCommandBuffer’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::init()’中:
command.cpp:(.text+0xf63):对‘vkCreateCommandPool’未定义的引用
command.cpp:(.text+0xfab):对‘vkAllocateCommandBuffers’未定义的引用
command.cpp:(.text+0xfe4):对‘vkCreateFence’未定义的引用
command.cpp:(.text+0x1049):对‘vkBeginCommandBuffer’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::begin_command_buffer()’中:
command.cpp:(.text+0x113e):对‘vkBeginCommandBuffer’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::end_command_buffer()’中:
command.cpp:(.text+0x11a6):对‘vkEndCommandBuffer’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkTransfer::~VkTransfer()’中:
command.cpp:(.text+0x1208):对‘vkDestroyFence’未定义的引用
command.cpp:(.text+0x1225):对‘vkFreeCommandBuffers’未定义的引用
command.cpp:(.text+0x123b):对‘vkDestroyCommandPool’未定义的引用
command.cpp:(.text+0x125d):对‘vkDestroyFence’未定义的引用
command.cpp:(.text+0x1273):对‘vkDestroySemaphore’未定义的引用
command.cpp:(.text+0x1290):对‘vkFreeCommandBuffers’未定义的引用
command.cpp:(.text+0x12a6):对‘vkDestroyCommandPool’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkTransfer::submit_and_wait()’中:
command.cpp:(.text+0x1344):对‘vkEndCommandBuffer’未定义的引用
command.cpp:(.text+0x1406):对‘vkQueueSubmit’未定义的引用
command.cpp:(.text+0x1474):对‘vkQueueSubmit’未定义的引用
command.cpp:(.text+0x14d8):对‘vkWaitForFences’未定义的引用
command.cpp:(.text+0x156f):对‘vkQueueSubmit’未定义的引用
command.cpp:(.text+0x1600):对‘vkWaitForFences’未定义的引用
command.cpp:(.text+0x164d):对‘vkEndCommandBuffer’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkTransfer::begin_command_buffer()’中:
command.cpp:(.text+0x1794):对‘vkBeginCommandBuffer’未定义的引用
command.cpp:(.text+0x17f9):对‘vkBeginCommandBuffer’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkTransfer::init()’中:
command.cpp:(.text+0x1892):对‘vkCreateCommandPool’未定义的引用
command.cpp:(.text+0x18d9):对‘vkAllocateCommandBuffers’未定义的引用
command.cpp:(.text+0x1911):对‘vkCreateFence’未定义的引用
command.cpp:(.text+0x1963):对‘vkCreateCommandPool’未定义的引用
command.cpp:(.text+0x19aa):对‘vkAllocateCommandBuffers’未定义的引用
command.cpp:(.text+0x19e2):对‘vkCreateSemaphore’未定义的引用
command.cpp:(.text+0x1a1a):对‘vkCreateFence’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkTransfer::end_command_buffer()’中:
command.cpp:(.text+0x1ad9):对‘vkEndCommandBuffer’未定义的引用
command.cpp:(.text+0x1afd):对‘vkEndCommandBuffer’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::VkCompute(ncnn::VulkanDevice const*)’中:
command.cpp:(.text+0x1d25):对‘vkCreateCommandPool’未定义的引用
command.cpp:(.text+0x1d70):对‘vkAllocateCommandBuffers’未定义的引用
command.cpp:(.text+0x1dac):对‘vkCreateFence’未定义的引用
command.cpp:(.text+0x1e1c):对‘vkBeginCommandBuffer’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkTransfer::record_upload(ncnn::Mat const&, ncnn::VkMat&, ncnn::Option const&, bool)’中:
command.cpp:(.text+0x21fa):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x2718):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x276a):对‘vkCmdCopyBuffer’未定义的引用
command.cpp:(.text+0x2804):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x2bfd):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x2c90):对‘vkCmdPipelineBarrier’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkTransfer::record_upload(ncnn::Mat const&, ncnn::VkImageMat&, ncnn::Option const&)’中:
command.cpp:(.text+0x3d33):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x3dc5):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x3ead):对‘vkCmdCopyBufferToImage’未定义的引用
command.cpp:(.text+0x3f6d):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x400a):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x4316):对‘vkCmdPipelineBarrier’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::record_clone(ncnn::VkMat const&, ncnn::VkMat&, ncnn::Option const&)’中:
command.cpp:(.text+0x49b8):对‘vkCmdCopyBuffer’未定义的引用
command.cpp:(.text+0x49ea):对‘vkCmdPipelineBarrier’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::record_download(ncnn::VkImageMat const&, ncnn::Mat&, ncnn::Option const&)’中:
command.cpp:(.text+0x5226):对‘vkCmdPipelineBarrier’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::record_clone(ncnn::VkMat const&, ncnn::Mat&, ncnn::Option const&)’中:
command.cpp:(.text+0x5ff3):对‘vkCmdPipelineBarrier’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::record_download(ncnn::VkMat const&, ncnn::Mat&, ncnn::Option const&)’中:
command.cpp:(.text+0x6956):对‘vkCmdPipelineBarrier’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::record_clone(ncnn::VkImageMat const&, ncnn::VkMat&, ncnn::Option const&)’中:
command.cpp:(.text+0x77cf):对‘vkCmdCopyImageToBuffer’未定义的引用
command.cpp:(.text+0x7852):对‘vkCmdPipelineBarrier’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::record_clone(ncnn::VkMat const&, ncnn::VkImageMat&, ncnn::Option const&)’中:
command.cpp:(.text+0x809c):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x81c8):对‘vkCmdCopyBufferToImage’未定义的引用
command.cpp:(.text+0x845a):对‘vkCmdPipelineBarrier’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::record_clone(ncnn::VkImageMat const&, ncnn::VkImageMat&, ncnn::Option const&)’中:
command.cpp:(.text+0x8b7c):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x8c4c):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x8d33):对‘vkCmdCopyImage’未定义的引用
../../src/../lib/libncnn.a(command.cpp.o):在函数‘ncnn::VkCompute::record_pipeline(ncnn::Pipeline const*, std::vector<ncnn::VkMat, std::allocatorncnn::VkMat > const&, std::vector<ncnn::VkImageMat, std::allocatorncnn::VkImageMat > const&, std::vector<ncnn::vk_constant_type, std::allocatorncnn::vk_constant_type > const&, ncnn::Mat const&)’中:
command.cpp:(.text+0x98cd):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x9acf):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0x9b74):对‘vkCmdBindPipeline’未定义的引用
command.cpp:(.text+0x9f26):对‘vkCmdPipelineBarrier’未定义的引用
command.cpp:(.text+0xabe6):对‘vkCreateDescriptorPool’未定义的引用
command.cpp:(.text+0xac65):对‘vkCmdPushConstants’未定义的引用
command.cpp:(.text+0xacb9):对‘vkCmdDispatch’未定义的引用
command.cpp:(.text+0xada3):对‘vkAllocateDescriptorSets’未定义的引用
command.cpp:(.text+0xb074):对‘vkUpdateDescriptorSets’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::VulkanDevice::compile_shader_module(unsigned int const*, unsigned long) const’中:
gpu.cpp:(.text+0x9c):对‘vkCreateShaderModule’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::VulkanDevice::compile_shader_module(unsigned int const*, unsigned long, unsigned int, unsigned int, unsigned int) const’中:
gpu.cpp:(.text+0x20b):对‘vkCreateShaderModule’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::VulkanDevice::create_descriptorset_layout(int, int const*, VkDescriptorSetLayout_T**) const’中:
gpu.cpp:(.text+0x50f):对‘vkCreateDescriptorSetLayout’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::VulkanDevice::create_pipeline_layout(int, VkDescriptorSetLayout_T*, VkPipelineLayout_T**) const’中:
gpu.cpp:(.text+0x64a):对‘vkCreatePipelineLayout’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::VulkanDevice::create_pipeline(VkShaderModule_T*, VkPipelineLayout_T*, std::vector<ncnn::vk_specialization_type, std::allocatorncnn::vk_specialization_type > const&, VkPipeline_T**) const’中:
gpu.cpp:(.text+0x84f):对‘vkCreateComputePipelines’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::VulkanDevice::init_device_extension()’中:
gpu.cpp:(.text+0x160c):对‘vkGetDeviceProcAddr’未定义的引用
gpu.cpp:(.text+0x163e):对‘vkGetDeviceProcAddr’未定义的引用
gpu.cpp:(.text+0x1655):对‘vkGetDeviceProcAddr’未定义的引用
gpu.cpp:(.text+0x166c):对‘vkGetDeviceProcAddr’未定义的引用
gpu.cpp:(.text+0x1686):对‘vkGetDeviceProcAddr’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):gpu.cpp:(.text+0x16a0): 跟着更多未定义的参考到 vkGetDeviceProcAddr
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::VulkanDevice::~VulkanDevice()’中:
gpu.cpp:(.text+0x23a3):对‘vkDestroySampler’未定义的引用
gpu.cpp:(.text+0x248d):对‘vkDestroyDevice’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::destroy_gpu_instance()’中:
gpu.cpp:(.text+0x263b):对‘glslang::FinalizeProcess()’未定义的引用
gpu.cpp:(.text+0x2682):对‘vkDestroyInstance’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::create_gpu_instance()’中:
gpu.cpp:(.text+0x2763):对‘vkEnumerateInstanceExtensionProperties’未定义的引用
gpu.cpp:(.text+0x2860):对‘vkEnumerateInstanceExtensionProperties’未定义的引用
gpu.cpp:(.text+0x29dc):对‘vkGetInstanceProcAddr’未定义的引用
gpu.cpp:(.text+0x2ac0):对‘vkCreateInstance’未定义的引用
gpu.cpp:(.text+0x2b31):对‘vkEnumeratePhysicalDevices’未定义的引用
gpu.cpp:(.text+0x2bb3):对‘vkEnumeratePhysicalDevices’未定义的引用
gpu.cpp:(.text+0x2c52):对‘vkGetPhysicalDeviceProperties’未定义的引用
gpu.cpp:(.text+0x2ef5):对‘vkGetPhysicalDeviceQueueFamilyProperties’未定义的引用
gpu.cpp:(.text+0x2fbd):对‘vkGetPhysicalDeviceQueueFamilyProperties’未定义的引用
gpu.cpp:(.text+0x34e3):对‘vkGetPhysicalDeviceMemoryProperties’未定义的引用
gpu.cpp:(.text+0x3504):对‘vkEnumerateDeviceExtensionProperties’未定义的引用
gpu.cpp:(.text+0x35bf):对‘vkEnumerateDeviceExtensionProperties’未定义的引用
gpu.cpp:(.text+0x3c90):对‘glslang::InitializeProcess()’未定义的引用
gpu.cpp:(.text+0x41ed):对‘vkGetInstanceProcAddr’未定义的引用
gpu.cpp:(.text+0x4207):对‘vkGetInstanceProcAddr’未定义的引用
gpu.cpp:(.text+0x4221):对‘vkGetInstanceProcAddr’未定义的引用
gpu.cpp:(.text+0x423b):对‘vkGetInstanceProcAddr’未定义的引用
gpu.cpp:(.text+0x4255):对‘vkGetInstanceProcAddr’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):gpu.cpp:(.text+0x4305): 跟着更多未定义的参考到 vkGetInstanceProcAddr
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::VulkanDevice::create_dummy_buffer_image()’中:
gpu.cpp:(.text+0x4dda):对‘vkCmdPipelineBarrier’未定义的引用
gpu.cpp:(.text+0x4eb0):对‘vkCmdPipelineBarrier’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::VulkanDevice::VulkanDevice(int)’中:
gpu.cpp:(.text+0x5b59):对‘vkCreateDevice’未定义的引用
gpu.cpp:(.text+0x5c4e):对‘vkGetDeviceQueue’未定义的引用
gpu.cpp:(.text+0x5d15):对‘vkGetDeviceQueue’未定义的引用
gpu.cpp:(.text+0x5d9d):对‘vkGetDeviceQueue’未定义的引用
gpu.cpp:(.text+0x5e9a):对‘vkCreateSampler’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::compile_spirv_module(char const*, int, ncnn::Option const&, std::vector<unsigned int, std::allocator >&)’中:
gpu.cpp:(.text+0x7b94):对‘glslang::TShader::TShader(EShLanguage)’未定义的引用
gpu.cpp:(.text+0x7baf):对‘glslang::TShader::setStringsWithLengths(char const* const*, int const*, int)’未定义的引用
gpu.cpp:(.text+0x7bcc):对‘glslang::TShader::addProcesses(std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&)’未定义的引用
gpu.cpp:(.text+0x7bdb):对‘glslang::TShader::setEntryPoint(char const*)’未定义的引用
gpu.cpp:(.text+0x7bea):对‘glslang::TShader::setSourceEntryPoint(char const*)’未定义的引用
gpu.cpp:(.text+0x7de6):对‘glslang::TShader::parse(TBuiltInResource const*, int, EProfile, bool, bool, EShMessages, glslang::TShader::Includer&)’未定义的引用
gpu.cpp:(.text+0x7e25):对‘glslang::TShader::getInfoLog()’未定义的引用
gpu.cpp:(.text+0x7e45):对‘glslang::TShader::getInfoDebugLog()’未定义的引用
gpu.cpp:(.text+0x7e6b):对‘glslang::TShader::~TShader()’未定义的引用
gpu.cpp:(.text+0x8859):对‘glslang::GlslangToSpv(glslang::TIntermediate const&, std::vector<unsigned int, std::allocator >&, glslang::SpvOptions*)’未定义的引用
gpu.cpp:(.text+0x8864):对‘glslang::TShader::~TShader()’未定义的引用
gpu.cpp:(.text+0xc59c):对‘glslang::TShader::TShader()’未定义的引用
../../src/../lib/libncnn.a(gpu.cpp.o):在函数‘ncnn::__ncnn_vulkan_instance_holder::__ncnn_vulkan_instance_holder()’中:
gpu.cpp:(.text._ZN4ncnn29__ncnn_vulkan_instance_holderD2Ev[_ZN4ncnn29__ncnn_vulkan_instance_holderD5Ev]+0x1b):对‘glslang::FinalizeProcess()’未定义的引用
gpu.cpp:(.text._ZN4ncnn29__ncnn_vulkan_instance_holderD2Ev[_ZN4ncnn29__ncnn_vulkan_instance_holderD5Ev]+0x62):对‘vkDestroyInstance’未定义的引用
collect2: error: ld returned 1 exit status
src/CMakeFiles/face.dir/build.make:154: recipe for target 'src/face' failed
make[2]: *** [src/face] Error 1
CMakeFiles/Makefile2:133: recipe for target 'src/CMakeFiles/face.dir/all' failed
make[1]: *** [src/CMakeFiles/face.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2