如何将cmake项目转换为Visual Studio等效项
How to convert a cmake project into a Visual Studio equivalent?
情况如下:我有一个程序的源代码(我们称之为programA)(用C和C++编写),以及CMakeLists.txt和CTestConfig.cmake文件。我已经使用 CMake 的图形用户界面安装了程序 A,很明显,它有效。它创建了.exe文件(我正在Windows 7操作系统上工作)。
问题是,现在,我被要求编辑程序(因此,我必须能够编辑代码并在进行更改时对其进行删除)。我还需要编译它,但不再是.exe而是.dll,这样我就可以将其添加到我们拥有的网站上。
我在论坛上读到,如果需要,CMake 可以将程序 A 编译成.dll,但由于我需要进行一些更改,我认为 CMake 调试并不像完全使用 VS 那样有用和容易。根据我从CMake语言中了解到的一点点,CMakeLists.txt主要用于检查用户的操作系统以及添加一些库以防找不到它们。
我不得不承认我对 CMake 指令的编程一无所知,因为我主要使用 ASP.NET、C、C++ 和 C#。然后,我的想法是尝试只在Visual Studio 2010中工作,而不是使用cmake,所以一旦我让程序"适应"到VS并且可以只使用VS编译,我就可以开始我的工作了。所以我的问题是我如何执行CMake刚刚使用Visual Studio所做的相同任务(有没有办法在VS中实现CMake指令?),VS可以通过接收类似于CMake.txt文件的东西作为参数进行编译(尽管它需要翻译成另一种语言)?
为了跳过CMake的使用,我尝试将源代码复制到VS中的新项目中。但是,由于它在编译时不使用 CMake 指令,因此会给出几个错误,其中大多数与找不到某些 headers.h 的事实有关(因为它们可能位于子文件夹中)。而且有很多子文件夹可以将路径添加到预定义的搜索目录中,这将需要很长时间。
对不起,我的解释不能更准确。我擅长自己编写小项目,但这是我第一次必须处理别人的程序。请不要犹豫,询问是否有任何未正确理解的内容
我将不胜感激你能给出的任何建议/建议/指导。
若要创建 dll,请使用add_library命令和 SHARED 关键字
add_library(mylib SHARED ${files})
这在CMake中很容易,不要回到视觉上,最后会更难
好消息
幸运的是,cmake
可以自动为您生成 VS 项目(本教程特定于 OpenTissue,但步骤 1 到 3 对您来说应该是相同的)。
[不是这样]坏消息
根据项目的复杂性,由cmake
自动生成的VS项目可能会变得非常讨厌,以至于难以辨认。例如,它将使用计算机的特定路径硬链接任何库依赖项,因此该项目肯定不会跨设置移植。无论如何,这是预期的bahavior,因为支持这个生成器的主要思想只是让它工作,从而允许用户使用MSVC轻松编译项目,所以你在这里无能为力。尽管如此,它应该在您的机器中工作,并且肯定是您的一个很好的起点,只需从头开始创建一个项目,将相关部分从自动生成的版本中复制出来即可。
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 试图在visual studio上用C++创建一个桌面应用程序
- 如何在MS Visual Studio 2019中运行QT UI
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- Visual Studio Code - C++ Debugger 無法啟動
- Visual Studio 2019:插入多个C++风格的单行注释
- Visual Studio Code "undefined reference to `WinMain@16'"
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- Visual Studio中的函数声明和函数定义问题
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- Visual Studio mkl_link_tool.exe链接错误
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 不同的Visual Studio版本中缺少.dll
- 用Visual Studio在C++中嵌入Julia
- Visual Studio 2017循环自动向量化问题
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- 尝试使用继承和模板实现CRTP.Visual Studio正在生成编译器错误
- Visual Studio在尝试读取resource.txt文件时崩溃
- Visual Studio 2017 不允许我创建 C++ 专用模板