C++ 如何正确构建和链接shaderc_combined.lib
我正在努力编译和/或链接。我需要它的光线跟踪框架与vulkan的计算机图形课程 安装程序 因为这应该由学生使用,所以我想保持一切整洁有序,所以我的解决方案中有两个项目:C++ 如何正确构建和链接shaderc_combined.lib,c++,visual-studio,cmake,vulkan,C++,Visual Studio,Cmake,Vulkan,我正在努力编译和/或链接。我需要它的光线跟踪框架与vulkan的计算机图形课程 安装程序 因为这应该由学生使用,所以我想保持一切整洁有序,所以我的解决方案中有两个项目: Lib,实际的框架。它取决于glfw3.lib、vulkan-1.lib和shaderc\u combined.lib App,学生们可以在这里玩弄这个框架,这是一个启动项目。它依赖于Lib 我使用cmake和Visual Studio 2019从源代码构建库,如下所示: mkdir build cd build cmake .
Lib
,实际的框架。它取决于glfw3.lib
、vulkan-1.lib
和shaderc\u combined.lib
App
,学生们可以在这里玩弄这个框架,这是一个启动项目。它依赖于Lib
mkdir build
cd build
cmake .. -G "Visual Studio 16 2019" -A x64
cmake . --build --config Debug
错误
现在,我不想将shaderc\u combined.lib
链接到我的项目lib
,但会出现以下两个错误(实际上,对于不同的.obj文件,我会多次出现这两个错误):
我的理解是:
提前感谢,请随意更正拼写错误:)因此,多亏了评论中的提示,这个问题或多或少地解决了
-DSHADERC\u ENABLE\u SHARED\u CRT=on
在shaderc上运行cmake,以强制shaderc使用/MD而不是/MT,然后一些示例不再编译,但其他示例可以正常工作事实上,情况正好相反——您的主项目似乎是在发布模式下编译的。谢谢,这会解释很多。也许我把两个图书馆搞混了。我会检查的。谢谢@VTT,我再次检查了我的链接器设置,现在可以工作了。
1>Lib.lib(shaderc.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
1>Lib.lib(shaderc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MD_DynamicRelease' in main.obj