什么是解决方案文件在Linux下C相当于++ IDE什么是解决方案文件在Linux下C相当于++ I

2019-05-12 14:18发布

我是很新的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中的一样吗?

Answer 1:

解决方案文件(的.sln)和C ++项目文件(.vcxproj)是一个Visual Studio自定义格式(更确切地说,他们是微软的MSBuild的构建系统的一部分)。 这可能是可能找到(或写),另一个IDE,可以读取这些文件,并模拟MSBuild的一个扩展,但是如果你有CMake的配置文件(的CMakeLists.txt),你应该能够打开或它所包含的目录作为项目克利翁(如在评论中指出)。

如果你没有这样的文件,以及该项目并不需要特别复杂的构建步骤,那么你可能只需要创建“从现有源”的新项目克利翁; 它应该能够生成CMake的文件给你。



Answer 2:

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上普遍发现支持。



Answer 3:

首先, 新的思维方式接近的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 -ggccg++ (或clang++ )编译命令。 后来(程序调试时),你可以通过一些优化标志(如-O2 )。 阅读如何调用GCC 。

尝试建立一些已有的免费软件程序(从他们的源代码,例如在github上 )。 你会学到很多大(你就会明白,他们在Unix方式通常设计)。

关于图书馆,阅读程序库方法文档后来Drepper的如何写共享库 。 请注意, 插件机是在Linux上非常不同(见的dlopen(3)和对dlsym(3) )和Windows(莱文的书上链接器和加载解释说好)。

我也建议你阅读的操作系统:三个简单的小品教科书(免费提供)。

Linux的大部分是用的免费软件 ,它有时是非常有用的,研究其中的一些源代码。

什么是VS解决方案文件在Linux相同呢?

没有 ,我的回答解释了为什么(为什么你甚至不应该梦想找到一个)。 你会发明在Linux上构建软件的另一种方式。

PS。 大多数的答案符合以上不仅Linux,但还有其他的Unix系统,包括mac系统(可能的Android)。



Answer 4:

要完成其他的答案,看来,微软提供了一个Linux版本的Visual Studio,见https://code.visualstudio.com/download

不太清楚它的功能(是一样的Windows版本?),但它绝对应该有一定的帮助。

其他提示:我使用的代码块(仅作为增强编辑器,而不是建设,我只用makefile文件),而且似乎它可以导入Visual Studio项目/解决方案(无论何种这些术语的意思是...)

最后,任何好的IDE应该能够从一堆源文件创建一个项目,一旦你勾选复选框的一些设置正确的选项。

(免责声明:我没有使用Windows戒烟10年以上)



Answer 5:

  • 有作为“Linux下C ++ IDE”事业没有这样的事还有很多
  • 的CMakeLists.txt是跨平台相当于“解决方案文件的”


文章来源: What is the equivalent of Solution files in Linux C++ IDE
标签: linux cmake