如何为Linux构建Visual C++项目?

msp*_*err 40 c++ linux visual-studio visual-c++

构建(用于Linux)用Visual Studio编写的C++应用程序的最佳和最简单的方法是什么?代码本身已准备就绪 - 我只使用跨平台库.

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

编辑:更多信息:

  • Libs使用:stl,wxwidgets,boost,asio,cryptlib.

  • Linux知识很少.

编辑#2:我选择了以下解决方案:使用kdevelop创建新项目并在那里编译所有内容.

Ore*_*ost 19

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

另一方面,如果你没有什么花哨的东西,你可以使用CMake或者只是Make来在Linux上构建东西,如果你想继续使用你的解决方案文件(这是我目前正在为带有测试应用程序的库做的事情) .当您的构建过程不仅仅是"将这些文件放在编译器中并让我们看看它做什么"时,这种方法变得复杂,因此CMake解决方案在我看来对于跨平台开发是一件好事.

  • 至少在不久前,Visual C++支持将项目/解决方案导出到makefile.你可以尝试一下,但最终的makefile是(或者当时)是一个血腥的混乱.您也可以尝试创建一个XSLT来将项目文件(不是解决方案)转换为您喜欢的任何内容,包括Makefile或CMake文件. (2认同)

pts*_*pts 7

以下是如何在Linux 手动编译C代码而无需其他构建工具:

gcc -s -O2 -o prog -I. -Iincludedir1 -Iincludedir2 -Llibdir1 -Llibdir2 code1.c code2.c -luse1 -luse2
Run Code Online (Sandbox Code Playgroud)

但是,如果您的项目大于几个文件,您可能需要使用构建工具(例如CMake,请参阅OregonGhost的答案)来自动编译许多文件并使其增量.如果你使用构建工具,它将在底层运行gcc,上面有类似的参数.理解上面的参数很有用,因此您可以在自动构建失败时进行故障排除.

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

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

  • 我假设他有多个文件.没有Makefiles编译是愚蠢的. (5认同)

Ric*_*ner 6

8年后......

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

2016年3月发布,VC++ for Linux允许您使用VC++创建项目,然后使用本机Linux工具在Linux机器/ VM中构建项目.此外,您还可以在VS中调试您的应用程序,因为Linux工具允许VS调试器通过SSH在您的Linux机器/ VM中驱动GDB!

看起来这几乎正是@mspoerr所要求的:)