繁体   English   中英

如何将cmake项目转换为Visual Studio等效项?

[英]How to convert a cmake project into a Visual Studio equivalent?

情况如下:我有一个程序源代码(让我们称之为programA)(用C和C ++编写),以及CMakeLists.txt和CTestConfig.cmake文件。 我已经使用CMake的图形用户界面安装了programA,并且很明显,它可以工作。 它创建了.exe文件(我正在使用Windows 7操作系统)。

问题是,现在,我被要求编辑程序(因此,我必须能够编辑代码并在进行更改时对其进行删除)。 我还需要编译它,但不是在.exe中,而是在.dll中,所以我可以将它添加到我们拥有的网站。

我已经在论坛上看到,如果我需要,CMake可以将programA编译成.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 Projects (本教程专门针对OpenTissue,但步骤1到3应该是相同的)。

[不是这样]坏消息

根据项目的复杂程度,由cmake自动生成的VS Projects可能变得非常讨厌,到了难以辨认的程度。 例如,它将使用您机器的特定路径硬连接任何库依赖项,因此项目肯定不会跨设置移植。 在任何情况下,这都是预期的行为,因为支持这个生成器的主要思想就是让它工作,从而允许用户使用MSVC轻松编译项目,所以你在这里做的并不多。 尽管如此,它应该可以在你的机器上运行,对你来说肯定是一个很好的起点,只需从头开始创建一个项目,从自动生成的版本中复制相关部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM