【问题标题】:External library inclusion - Eclipse CDT and MinGW外部库包含 - Eclipse CDT 和 MinGW
【发布时间】:2016-05-04 21:49:24
【问题描述】:

我正在尝试重新学习 C++,我正在使用 MinGW 在 Windows 上使用 Eclipse CDT,我想在不修改 MinGW 安装的情况下包含一个外部库。目前,我正在使用 SDL2,但这是一个更笼统的问题。

我已经使用以下步骤成功编译并运行了我的测试程序:

  1. 下载SDL2-devel-2.0.4.mingw.tar.gz (here) 并解压
  2. 将文件从SDL2-2.0.4\ 复制到我的MinGW 安装:
    • \include\SDL2 到 %MinGW%\include\
    • \lib\libSDL2.a 到 %MinGW%\lib\
    • \lib\libSDL2.dll.a 到 %MinGW%\lib\
    • \lib\libSDL2.la 到 %MinGW%\lib\
    • \lib\libSDL2main.a 到 %MinGW%\lib\
    • \bin\SDL2.dll 到 %MinGW%\bin\
  3. 通过 Project->Properties 将库(按顺序)添加到链接器:C/C++ Build->Settings:(“Tool Settings”选项卡)MinGW C++ Linker->Libraries:“Libraries (-l)”部分
    • SDL2main
    • SDL2
  4. #include <SDL2\SDL.h> 在我的 cpp/h 文件中
  5. 构建程序
  6. 使用我的.exe 将SDL2.dll 复制到输出目录
  7. 运行

在这台特定的机器上,我使用的是 SDL2-2.0.4 的 i686-w64-mingw32 构建,但我想直接将链接器指向这个,而不是在上面的步骤 2 中复制到 MinGW 安装。然后我可以简单地将这些文件包含在我的 repo 中,而无需期望正确修改 MinGW 安装,或更改指向 x86_64-w64-mingw32 构建在另一台机器上的指针等。

在一个稍微不同的注释(可能是一个单独的问题)上,是否有自动化步骤 6 的方法?我似乎找不到它,并且在每个干净的构建上手动复制 dll 相当烦人......

【问题讨论】:

    标签: mingw eclipse-cdt


    【解决方案1】:

    您快到了,只需将包含目录添加到 SDL2 的外部解压缩位置,并为链接阶段添加库搜索路径。

    1. 项目->属性:C/C++ 构建->设置:(“工具设置”选项卡)MinGW C++ 编译器->包含:“包含路径 (-I)”部分

    2. 项目->属性:C/C++ 构建->设置:(“工具设置”选项卡)MinGW C++ 链接器->库:“库搜索路径 (-L)”部分

    至于您的其他问题,请确保您的 PATH 中有 SDL2.dll,然后您就不必复制它。如果你真的想复制它,你可以将它添加到后期构建步骤中:项目->属性:C/C++ 构建->设置:(“构建步骤”选项卡)后期构建步骤:命令

    【讨论】:

    • 谢谢!构建后的步骤在这里看起来相当笨拙......如果有任何其他非编译文件怎么办? (即 config/ini 或自述文件)......另外,有没有办法为任何这些(或项目路径引用)使用相对路径?我已经成功地使用了完整路径,但我宁愿更可转移。
    猜你喜欢
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 2011-07-07
    • 1970-01-01
    • 2017-05-27
    • 2014-02-08
    • 2014-06-28
    相关资源
    最近更新 更多