【问题标题】:Windows Build System: How to build a project (from its source code) which doesn't have *.sln or Visual C++ proj file (*.vcproj)Windows 构建系统:如何构建没有 *.sln 或 Visual C++ proj 文件 (*.vcproj) 的项目(从其源代码)
【发布时间】:2011-02-13 10:39:44
【问题描述】:

我面临this 问题。因此,我需要使用“多线程 DLL”(/MD)和“多线程 DLL 调试”(/MDd)运行时选项构建支持库(zlib、libtiff、libpng、libxml2、libiconv)。但问题是没有直接的方法。我的意思是没有可以在 Visual C++ 中打开并构建它的 *.sln / *.vcproj 文件。

我知道GNU build system

$./configure --with-all-sorts-of-required-switches
$./make
$./make install

在我的搜索过程中,我遇到了一个名为 CMake 的东西,它会生成 *.vcproj 和 *.sln 文件,但需要 CMakeLists.txt。并非所有项目都提供 CMakeLists.txt。

我从来没有从 Visual C++ 命令行编译过任何东西。

  • 通常大多数项目提供makefile。现在如何从中生成 *.vcproj / *.sln?

  • 我可以用mingw-makeMinGW 编译吗?

  • 如果可以,如何设置不同的选项(“多线程”(/MT)、“多线程调试”(/MTd)、“多线程 DLL”(/MD)、“运行时库的多线程 DLL 调试"(/MDd))?

  • 我不知道还有什么其他方法可用。请对此有所了解。

【问题讨论】:

    标签: c++ c visual-c++ build cross-compiling


    【解决方案1】:

    我相信所有这些项目都包含一个 .vcproj 文件(在 VC 中打开/构建)和/或 VC makefile(使用 nmake 构建)。

    【讨论】:

    • “VC makefile(使用 nmake 构建)。”。你能像我在我的问题中为 GNU 构建系统展示的那样展示如何使用它吗?如何使用此设置 /MD、/MDd、/MT、/MTd?
    【解决方案2】:

    您可以在 Visual Studio 中创建一个新项目并将现有的 .cpp 文件添加到其中。

    请注意,对于您提到的几个 GNU 库,您可能很难将它们构建在 Microsoft Visual Studio 的编译器上,因为据我所知,它们并不羞于在此类程序中使用 GCC 扩展。

    【讨论】:

      【解决方案3】:

      当您创建一个空的 Win32 项目并将所有文件拖入其中时,大多数项目都可以工作。

      然后更改输出路径,并可能单击几个选项。

      【讨论】:

        【解决方案4】:

        您可以为编译器+链接器创建包装脚本以调用 VC 编译器并让它们由./configure CC=my-visual-c-script CXX=my-visual-c++-script 配置。我破解了用 automake 分发的编译脚本来做这件事。请注意,automake 也会调用编译器进行链接,因此包装器必须决定是必须调用编译器还是链接器。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-29
          • 1970-01-01
          • 1970-01-01
          • 2021-07-29
          • 1970-01-01
          • 1970-01-01
          • 2021-08-03
          • 2021-10-14
          相关资源
          最近更新 更多