Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在CMAKE中制作程序之前如何制作库?_C++_Cmake_Glfw_Vulkan - Fatal编程技术网

C++ 在CMAKE中制作程序之前如何制作库?

C++ 在CMAKE中制作程序之前如何制作库?,c++,cmake,glfw,vulkan,C++,Cmake,Glfw,Vulkan,我希望能够动态编译一个库,该库将在编译项目之前由我的项目使用 我在C++中设置了一个Vulkan项目(克利永),希望它是多个平台,我使用GLFW3.3来实现这一点。 与其为每个平台构建我的库,并将libs和.h放在一个通过CMakeLists.txt链接的文件夹中,我希望能够制作库,然后将lib和.h放在需要的地方,然后开始编译将使用它们的程序 GLFW有一个工作的CMakeLists.txt(我设法通过控制台手动创建),但我不知道如何告诉CMAKE创建它等等 我习惯于使用CMake来定义lib

我希望能够动态编译一个库,该库将在编译项目之前由我的项目使用

我在C++中设置了一个Vulkan项目(克利永),希望它是多个平台,我使用GLFW3.3来实现这一点。 与其为每个平台构建我的库,并将libs和.h放在一个通过CMakeLists.txt链接的文件夹中,我希望能够制作库,然后将lib和.h放在需要的地方,然后开始编译将使用它们的程序

GLFW有一个工作的CMakeLists.txt(我设法通过控制台手动创建),但我不知道如何告诉CMAKE创建它等等

我习惯于使用CMake来定义libs的路径,但我的上一个项目也包括多平台,我不喜欢我处理库的方式(手动构建等)。 因此,我正在寻找一种在CMake中一次完成所有事情的方法,即使这需要时间,但我不知道它是如何工作的。

看看它是如何工作的:


它们只包含GLFW提供的CMakeLists.txt文件,并依赖该文件作为主要目标。

哇,我对设置此文件的简单性感到震惊。
option(GLFW_BUILD_DOCS OFF)
option(GLFW_BUILD_EXAMPLES OFF)
option(GLFW_BUILD_TESTS OFF)
add_subdirectory(Glitter/Vendor/glfw)

target_link_libraries(${PROJECT_NAME} ... glfw)