【问题标题】:Compiling and linking library MSVC/MingW编译链接库 MSVC/MingW
【发布时间】:2014-12-04 13:17:55
【问题描述】:

我是 StackOverflow 的忠实粉丝,因为您总能找到问题的答案,现在是我推进它的机会 Ö!

我正在尝试使用我在 Internet 上获得的库,它的 OZCollide。它应该是跨平台的,正如它在其网站上所说的“跨平台,适用于 Windows、Linux 和 Macintosh,实际上任何支持 VisualStudio 6/7 或 gcc 的平台

我得到了所有的 .h 和 .cpp,用 MinGW 将它们编译为对象 (.o),然后使用 ar 将它们全部链接起来。但问题是当我在我的项目(QT 和 MinGW)中包含并使用该库时,它会抛出“未定义的引用”。

我认为问题可能是库示例仅使用 Visual Studio,因此无法为 MinGW 编译该库,但该网站讲述了其他故事。

感谢您的宝贵时间!


编辑:好的,我已经设法编译它并使用它移动到另一台计算机并编译makefile。唯一的区别是计算机 A 安装了 Cygwing 和 MinGW(在 Windows 路径中设置了 Cygwin)而计算机 B 只有 MinGW。

所以我猜问题是 Makefile 调用 g++ 而 Cygwin g++ 被调用而不是 MinGW g++??

如果我是对的,Cygwin 和 MinGW 有什么区别?

【问题讨论】:

    标签: qt g++ mingw


    【解决方案1】:

    如果您有使用 CMake 的经验,请创建自己的 CMakeLists 文件并将此库导入/链接到您的项目。这样就可以为MinGW/MSVC/Linux/等创建项目了。

    在这里,您会发现 CMake http://www.cmake.org/cmake-tutorial/ 的良好开端

    【讨论】:

    • 好吧,老实说,我很难学习处理 g++、makefile 等,因为这是我第一次,而且库中包含的 Makefile 无法正常工作。但我会试试你的链接。
    • 使用 CMake,您不必关心单个编译器。 CMake 将为您设置一个 g++ Makefile、一个 MSVC .sln,具体取决于您的机器上安装的平台/编译器,并将您想要的所有库链接到您的应用程序。不用再头疼了!
    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 2016-02-02
    • 2011-01-29
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    相关资源
    最近更新 更多