【问题标题】:Can't use C library (function)不能使用 C 库(函数)
【发布时间】:2012-11-08 17:00:39
【问题描述】:

以下是我的环境:

  • 面向 C/C++ 开发人员的 Eclipse IDE(Juno)
  • Qt 4.8.3
  • Qt Eclipse 集成 v1.6.1
  • mingw(20120426)

当我创建 Qt 控制台项目时,我就是不能使用 C 库函数,例如 exit(int)atoi(string)

错误信息类似于Function 'exit' could not be resolved

我已经添加了stdlib.h,但仍然无法使用。

不知道跟索引有没有关系。


20121109 更新

谢谢你给我帮助!

atoi 只是一个例子!

虽然我用c++编写程序,但有时我想使用C库,所以我将它标记为c++。

以下是我包含的内容

  • C:/MinGW/include
  • C:/MinGW/lib/gcc/mingw32/4.6.2/include
  • C:/MinGW/lib/gcc/mingw32/4.6.2/include/c++
  • C:/MinGW/lib/gcc/mingw32/4.6.2/include/c++/backward
  • C:/MinGW/lib/gcc/mingw32/4.6.2/include/c++/mingw32
  • C:/MinGW/lib/gcc/mingw32/4.6.2/include-fixed

其他都是Qt库。

下面是main

#include <QtCore>
#include <QCoreApplication>
#include <cstdlib>

using namespace std;

int main(int argc, char *argv[])
{
    std::exit(0);
    QCoreApplication a(argc, argv);
    return a.exec();
}

我尝试这种方式,但仍然收到错误消息Function 'exit' could not be resolved

非常感谢!

【问题讨论】:

  • 你可以尝试#include 并改用std::exit(int) 吗?
  • 什么索引有关?
  • @BoTian 是一个 C 程序,不是吗?
  • 我看到标签 C++ 所以我认为它是 C++。
  • 有趣/奇特的编程环境,提供了QTCreator的优良品质。

标签: c++ eclipse qt


【解决方案1】:

首先,使用 C++ 标头样式。对于 stdlib.h :

#include <cstdlib>

那么,我猜你没有带来命名空间信息。要么写:

using namespace std;

(即使我不推荐)或

using std::exit    using std::atoi;

或使用完全限定名称:

std::exit(-1);

最后,为什么需要atoi这样的函数?

【讨论】:

  • 但即使使用&lt;stdlib.h&gt;,它也应该能够找到 C 标头
【解决方案2】:

我有一个类似的情况,我可以通过将#include &lt;cstdlib&gt; 移动到标题包含列表的顶部来解决。这意味着其他头文件之一依赖于cstdlib 中的某些内容。这不是很好的做法,但它们都是系统头文件,尝试更正它们会使代码在类似开发系统之间的可移植性降低。

【讨论】:

    【解决方案3】:

    我使用 Eclipse C++ Kepler。这就是我所做的,它对我有用: 在编辑器屏幕中右键单击>运行方式>本地 C/C++ 应用程序。

    【讨论】:

      猜你喜欢
      • 2017-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多