我是很新的C ++在Linux的发展,我一直使用的Visual Studio在Windows中进行开发。
有一个C ++项目,该项目已被设计的方式,它的使用建立CMakeLists.txt
文件。 我有一个艰难的时间建立同在Windows,但幸运的是,我可以在Linux中构建此。
Linux中的构建输出是一堆.so文件(即我阅读网页就相当于Windows中的.dll文件)。
我打算开在Linux下C ++ IDE解决方案文件(我目前使用的克利翁相同),以同样的方式被使用该解决方案(.sln文件)在Visual Studio中完成在Windows中。 我不知道如何该项目文件可以在Linux下C ++ IDE中打开,我怎么能在Linux下使用cmake生成相同的。 在这方面的任何帮助将是非常有益的。
什么是VS解决方案文件在Linux中等价,我想在一个基于Linux的C到打开我的项目文件++ IDE例如克利翁,我怎么能生成使用cmake在Linux中的一样吗?
解决方案文件(的.sln)和C ++项目文件(.vcxproj)是一个Visual Studio自定义格式(更确切地说,他们是微软的MSBuild的构建系统的一部分)。 这可能是可能找到(或写),另一个IDE,可以读取这些文件,并模拟MSBuild的一个扩展,但是如果你有CMake的配置文件(的CMakeLists.txt),你应该能够打开或它所包含的目录作为项目克利翁(如在评论中指出)。
如果你没有这样的文件,以及该项目并不需要特别复杂的构建步骤,那么你可能只需要创建“从现有源”的新项目克利翁; 它应该能够生成CMake的文件给你。
Linux不使用VS解决方案文件。 他们是专门针对Windows和Visual Studio。 您将需要使用cmake -G
产生适当的特定于平台的构建文件。 即。 其中的一个,具体取决于哪个IDE,您选择使用:
Unix Makefiles = Generates standard UNIX makefiles.
Ninja = Generates build.ninja files.
Watcom WMake = Generates Watcom WMake makefiles.
CodeBlocks - Ninja = Generates CodeBlocks project files.
CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
CodeLite - Ninja = Generates CodeLite project files.
CodeLite - Unix Makefiles = Generates CodeLite project files.
Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
KDevelop3 = Generates KDevelop 3 project files.
KDevelop3 - Unix Makefiles = Generates KDevelop 3 project files.
Kate - Ninja = Generates Kate project files.
Kate - Unix Makefiles = Generates Kate project files.
Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
Sublime Text 2 - Unix Makefiles
= Generates Sublime Text 2 project files.
由于您使用的克利翁,我建议cmake -G "Unix Makefiles"
这是由几个流行的Linux C ++集成开发环境以及GNU / Linux的工具在Linux上普遍发现支持。
首先, 用新的思维方式接近的Linux。 你的问题是隐含要求微软产品的完全等效,这是不是合理,是不是如何Linux和其他Unix系统(和其下的软件开发)的工作。 在Linux(和其他Unix系统,包括MacOSX的),你会结合多种工具对你的工作,例如编译器 (如GCC或铛 ),一个连接器和相关工具( binutils的 ),一个源代码编辑器 (你有很多选择的,我推荐emacs的 ,但你可以使用vim的 , geany , gedit中 ,等...实在是品味的问题),像一个调试器GDB (和你真的想使用它的命令行,因为它是很厉害),一个版本控制 (我强烈推荐的git ),一个构建自动化工具(如制作或忍者 ),也许是一个文档生成如doxygen的 ; 也许你会做一些临时元编程用C或C ++代码生成器,如野牛 , 痛饮 , 的Protobuf ,等...或者通过你自己的脚本(壳, AWK , Python中 ,一些通用的预处理像GPP或M4等..)。 该cmake
工具(我不喜欢)是一个简单的Makefile
生成器(和实际的构建是通过做make
),而且在许多情况下,编写Makefile
手工更简单。
特别是,你将需要一些时间来学习如何做的事情Linux的方法 。 想想看,你可能需要阅读和学习数天或数周。 不要指望有“业务”马上。 花些时间在学习命令行工具和Unix外壳 。
如果你是编程的Linux(特别是在C ++或C),您还需要了解linux编程(这需要一些时间)。 看了一些书像ALP什么新的。 须注意的系统调用(2) 。 在某些情况下,你可能会感兴趣的C ++框架,比如Qt的 , POCO , 升压 ,等...(但我相信你还是需要了解的Linux编程的基础知识,即使你使用这些框架)。
阅读来自WIKIPAGE Unix哲学 。 它解释恕我直言你的任务组合工具的Unix的视图的优越性。
你可以使用克利翁 ,但你应该知道,有做同样的其他方式。 首先,你可以使用其他的IDE,比如DEV + C ++ , 代码::块 ,等等。然后我不推荐使用任何IDE盲目,而是能够结合,而不是其他工具(我喜欢使用emacs
+ make
+ gdb
+ git
一起),这意味着了解您的IDE开始为你的程序。
确保编译C或C ++代码时,使所有的警告和调试信息GCC (或铛 )(因为警告和调试信息不被默认启用)。 因此,通过-Wall -Wextra -g
你gcc
或g++
(或clang++
)编译命令。 后来(程序调试时),你可以通过一些优化标志(如-O2
)。 阅读如何调用GCC 。
尝试建立一些已有的免费软件程序(从他们的源代码,例如在github上 )。 你会学到很多大(你就会明白,他们在Unix方式通常设计)。
关于图书馆,阅读程序库方法文档后来Drepper的如何写共享库 。 请注意, 插件机是在Linux上非常不同(见的dlopen(3)和对dlsym(3) )和Windows(莱文的书上链接器和加载解释说好)。
我也建议你阅读的操作系统:三个简单的小品教科书(免费提供)。
Linux的大部分是用的免费软件 ,它有时是非常有用的,研究其中的一些源代码。
什么是VS解决方案文件在Linux相同呢?
没有 ,我的回答解释了为什么(为什么你甚至不应该梦想找到一个)。 你会发明在Linux上构建软件的另一种方式。
PS。 大多数的答案符合以上不仅Linux,但还有其他的Unix系统,包括mac系统(可能的Android)。
要完成其他的答案,看来,微软提供了一个Linux版本的Visual Studio,见https://code.visualstudio.com/download
不太清楚它的功能(是一样的Windows版本?),但它绝对应该有一定的帮助。
其他提示:我使用的代码块(仅作为增强编辑器,而不是建设,我只用makefile文件),而且似乎它可以导入Visual Studio项目/解决方案(无论何种这些术语的意思是...)
最后,任何好的IDE应该能够从一堆源文件创建一个项目,一旦你勾选复选框的一些设置正确的选项。
(免责声明:我没有使用Windows戒烟10年以上)