从Visual Studio解决方案生成Make文件(针对GCC)

18

我想使用GCC在Linux中编译带有三个项目的Visual Studio Solution。该解决方案包含两个DLL项目和一个使用这些DLL的应用程序(.EXE)项目。源代码没有包含任何Windows相关依赖项。

如何将此解决方案(3个项目)转换为可以在Linux中编译的Makefile文件,使用GCC

是否有任何工具可将Visual Studio解决方案(Project)转换为Makefile文件?

Visual Studio版本是Visual Studio 2008


4
使用make-it-so,还可以参考这里的答案 - rubber boots
3
“make-it-so” 能在 VS2013 上使用吗? - remus
3个回答

6

3

-1
首先,Linux没有DLL,而是有共享对象,可以进行动态链接,并具有不同的语义。请阅读Levine的Linkers and Loaders一书了解更多信息,以及Program Library Howto和Drepper的How to write shared libraries。对于C++,要注意name mangling并参考C++ dlopen mini-howto
其次,我认为你不应该尝试将你的VS项目转换成Makefile,你应该自己编写一个好的Makefile

别忘了设置你的Makefile,以便将-Wall传递给GCC(也许还有-std=gnu99-g,如果你想要调试信息,可能是通过CFLAGSCXXFLAGS)。

除非你的程序是一个百万行代码的应用程序,否则你不会在编写自己的Makefile时遇到太多麻烦。我强烈建议学习使用GNU make并阅读其文档,这些文档似乎写得很好(包括一些教程部分)。你可以浏览一下make -p的输出,它给出了GNU make的“内置知识”。

你还可以查看现有的免费软件Linux应用程序,并研究它们的Makefile

顺便说一句,如果你在调试你的Makefile时遇到困难,可以使用remake

不要考虑“将我的应用程序转换为Linux”,而是更多地考虑“编写一个Linux应用程序”。

请注意,一些框架(尤其是Qt)可用于开发可在Linux、Windows和MacOS上移植的软件。您甚至可以将它们用于非GUI应用程序。
不要忘记阅读像高级Linux编程高级Unix编程这样的材料。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接