如何build立一个Linux的Visual C ++项目?

build立(用于Linux)C ++应用程序是用Visual Studio编写的最好和最简单的方法是什么? 代码本身就绪 – 我只使用跨平台的库。

是否有可能在Windows下在Visual Studio中准备一切,然后在Linux下使用CLI工具来构build它? 有没有文件描述这个?

编辑:一些更多的信息:

  • 使用的libs:stl,wxwidgets,boost,asio,cryptlib。

  • 非常less的Linux知识。

编辑#2:我select了以下解决scheme:使用kdevelop创build新项目并编译所有内容。

我们正在为Linux项目使用CMake。 CMake可以生成KDevelop和Visual Studio项目文件,因此您可以创buildCMake文件作为特定于平台的IDE文件的来源。 KDevelop生成器很好,所以你可以在KDevelop中编辑和编译(它将会调用Make)。

另一方面,如果你没有什么奇特的想法,你可以使用CMake或者只是Make来在Linux上构build这个东西,如果你想继续使用你的解决scheme文件(这是我目前正在做的一个testing应用程序库) 。 当你的构build过程不仅仅是“把这些文件扔到编译器中,让我们看看它做什么”时,这种方法就变得复杂了,所以CMake解决scheme在我看来是一个跨平台开发的好东西。

下面是如何在Linux 手动编译C代码, 无需额外的编译工具

gcc -s -O2 -o prog -I. -Iincludedir1 -Iincludedir2 -Llibdir1 -Llibdir2 code1.c code2.c -luse1 -luse2 

但是,如果您的项目大于几个文件,则可能需要使用构build工具 (例如CMake,请参阅OregonGhost的答案)来自动化编译多个文件并使其增量化。 如果你使用一个构build工具,它将在头脑中运行gcc,上面有类似的论点。 了解上述参数非常有用,因此如果自动构build失败,可以排除故障。

这将编译code1.c和code2.c到可执行的二进制程序,从。,includedir1和includedir2加载.h文件,从目录libdir1和libdir2加载库(例如libuse1.so *和libuse2.so *),使用库use1对应于文件名libuse1.so *)和use2。

如果在.c文件中出现未定义的符号错误,则必须指定更多的-I标志。 如果在.o文件中出现未定义的符号错误,则必须指定更多的-l标志。 如果cannot find -l...错误,则必须指定更多的-L标志。

用Visual Studio编写用于Linux的c ++应用程序的最佳和最简单的方法是什么? 代码本身已经准备好了 – 我只使用了跨平台的库。

  • 检查是否有任何不是标准C ++的一部分
  • 冲洗并重复
  • 创build一个makefile或一个KDevelop项目

Etvoilà!

8年后…

今天我偶然发现了这个问题,并认为你可能想看看Visual C ++ for Linux 。

在2016年3月发布的VC ++ for Linux允许您使用VC ++创build项目,然后使用本地Linux工具将其构build到Linux机器/ VM中。 更重要的是,你也可以在VS中debugging你的应用程序,因为Linux工具允许VSdebugging器通过SSH在你的Linux机器/ VM上驱动GDB!

看起来像这几乎是@mspoerr要求:)