使用 Qt Creator 构建斯坦福 CS106B 项目的问题

Posted

技术标签:

【中文标题】使用 Qt Creator 构建斯坦福 CS106B 项目的问题【英文标题】:Problems building Stanford CS106B projects with Qt Creator 【发布时间】:2015-07-25 15:26:46 【问题描述】:

我正在尝试使用他们的免费在线资源参加斯坦福 CS106B 课程(我不是斯坦福学生)。由于他们现在需要登录 ID 才能访问当前季度主页上的许多页面,因此我使用的是 2015 年第一季度的存档页面,位于此处:

http://stanford.edu/class/archive/cs/cs106b/cs106b.1154/

我从其他人那里看到了一些类似的问题,他们在构建分配项目时遇到了困难,但他们都在使用其他 IDE 和/或操作系统,而且他们都收到了不同的错误消息。

我首先尝试了 Qt Creator 5.5,但当我遇到错误时,我将其卸载并安装了 Qt Creator 5.4.1。这是存档旧页面上推荐的版本,因此我认为同一页面上的分配将与此版本兼容。我已经在一台运行 Windows 8.1 的机器和另一台运行 Windows Vista 的机器上进行了尝试。无论我使用的是哪个版本的 Qt Creator 或 Windows,每次我尝试构建斯坦福的作业或示例项目时,我都会在 Qt Creator 的“问题”窗口中收到以下消息:

    cannot find -liberty

    error: Id returned 1 exit status
    collect2.exe

编译输出窗口显示以下错误:

    I:/Program Files/Qt Creator/Tools/mingw492_32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -liberty
    collect2.exe: error: ld returned 1 exit status
    Makefile.Debug:247: recipe for target 'debug\simple-project.exe' failed
    mingw32-make[1]: *** [debug\simple-project.exe] Error 1
    mingw32-make[1]: Leaving directory 'I:/Moved from Drive 1/Documents/QT Creator projects/build-simple-project-Desktop_Qt_5_5_0_MinGW_32bit-Debug'
    makefile:34: recipe for target 'debug' failed
    mingw32-make: *** [debug] Error 2
    09:42:28: The process "I:\Program Files\Qt Creator\Tools\mingw492_32\bin\mingw32-make.exe" exited with code 2.
    Error while building/deploying project simple-project (kit: Desktop Qt 5.5.0 MinGW 32bit)
    When executing step "Make"

我还应该注意,我下载了 Qt Creator 中提供的示例项目,并且我能够构建和运行这个项目。只有斯坦福项目给了我错误。

我是 C++ 和 Qt Creator 的新手,所以可能有一些简单的事情我没有做。如有任何帮助,我将不胜感激。

【问题讨论】:

错误信息告诉你到底是什么问题,链接器找不到iberty库(不管是什么)。安装了吗? 每个作业都包括斯坦福 CSS 库(也位于此处:stanford.edu/~stepp/cppdoc)。这些应该是我们分配任务所需的所有库。此文件夹中有许多库,但没有一个与错误消息匹配。我也没有在课程资料或斯坦福网站的任何地方找到对这个库的任何引用。 【参考方案1】:

修改 .pro 文件,使其不再尝试链接“liberty”库。

在第 107 行的 simple-project.pro 文件中,引用了“liberty”库。我将其注释掉,示例 simple-project 编译。

LIBS += -lDbghelp
LIBS += -lbfd
LIBS += -liberty <-place "#" in front of this line
LIBS += -limagehlp

【讨论】:

非常感谢你,马克。我现在可以构建和运行简单项目,而且您还教了我更多关于 C++ 的知识。我单击复选标记以接受您的解决方案并尝试对您的帖子进行投票。它说当我有 15 个声望点时会出现赞成票。另一方面,为了纠正我上面的错字,斯坦福图书馆不叫 CSS,它们被称为斯坦福 C++ 图书馆或斯坦福 CPP 图书馆。

以上是关于使用 Qt Creator 构建斯坦福 CS106B 项目的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Qt Creator 构建工具?

qt creator 构建、配置

在 Qt Creator (Windows) 中构建 Qt 库的问题

为啥 Qt Creator 找到 typedef,但没有找到构建过程?

在 Windows 8 上使用 Qt-creator 构建(编译)一个基本的独立 .exe 应用程序

QT Creator 构建 qml 应用程序