问题标签 [dev-c++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
38664 浏览

c++ - 由于在多个 cpps 中包含相同的标头而导致重复的多个定义错误

因此,无论我做什么,我似乎都无法避免 Dev C++ 出现大量多重定义错误,因为我在同一个项目的多个源代码文件中包含了相同的头文件。我强烈希望避免将所有源代码转储到一个文件中,并且只包含一次标题,因为这会使我的文件非常长且难以管理。

本质上,这就是正在发生的事情:

示例 Cpp 文件(它们几乎都像这样):

请记住,我有大约 5 个包含这个头文件的 cpp 文件,每个文件都处理头文件中的不同类型的结构。在这个例子中,只有一个结构包含几个成员,而实际头文件中有大约 4-6 个不同的结构和更多的成员。我包含的所有文件都遵循与您在此示例中看到的相同的公式。

现在我明白标头保护只会阻止每个单独的 cpp 文件多次包含头文件。似乎正在发生的事情是,当编译器在每个 cpp 的开头读取包含时,它会重新定义头文件,这导致它吐出以下行和行:

我会为项目中几乎每个包含标头的 cpp 文件看到一组这样的文件。我已经尝试将结构和结构变量的定义移动到 cpp 文件中,但是其他 cpp 文件看不到它们或无法使用它们,这非常重要,因为我需要项目中的所有文件才能工作使用这些结构。

但是关于这个问题的最令人困惑的部分需要更多解释:

我在这个项目中设置这些多个文件的方式与我正在使用的书相同,John S. Harbour 的 All In One Game Programming。当我为书中的示例项目创建文件时,我遇到了完全相同的问题,这些文件要求同一项目中的多个 cpp 包含一个标头。

我可以逐字逐句地从书中输入它们,而且我的意思是逐字逐句......
我会得到项目中每个 cpp 的一系列 MD 错误。

如果我从本书附带的 CD 中加载示例项目,它会毫无问题地编译和运行,尽管文件本身以及项目选项在所有外观上都与我创建的相同。

如果我创建了自己的项目文件,并简单地从 CD 中添加示例项目的源文件和头文件,这也将编译和运行,尽管我发现它们和我的没有区别。

因此,我尝试制作自己的项目文件,然后创建空白的源文件和头文件并将它们添加到其中,然后通过从 CD 上它们要对应的文件中复制和粘贴它们的内容来填充它们(相同那些已经工作的)。果然,我会得到同样的东西……一行又一行的 MD 错误消息。

我完全感到困惑。我已经多次重复所有这些方法,并且确定我没有输入错误或错误复制代码。预制文件本身似乎有些东西。一些配置设置或其他我完全丢失的东西......这将导致它们正确编译,而我自己制作的文件不会。

0 投票
5 回答
76255 浏览

file - dev-C++ 中的头文件

我正在尝试将头文件添加到 dev-C++,但是当我编译它时它不起作用。这是我的确切步骤(对于我的示例,我正在尝试让 mysql.h 工作):

  1. 将“mysql.h”复制到 c:\dev-c++\includes
  2. 检查 dev-C++ 工具 > 编译器选项 > 目录 > c 包含和 c++ 包含是否具有“c:\dev-c++\includes”的路径
  3. 在我的文件顶部包含#include
  4. 编译

这是 dev-C++ 编译器告诉我的:

以及由于找不到头文件而导致的其他错误

我列出的步骤是否正确?或者我还需要做些什么来编译头文件。

PS 我尝试对 VS2008 做同样的事情(将 mysql.h 放在 vs2008 包含文件夹等中)但仍然有同样的错误。如果可能的话,我想坚持使用 Dev-c++。

0 投票
1 回答
1583 浏览

opengl - glut.h 的链接器错误

[链接器错误] 对 `__glutInitWithExit@12' 的未定义引用

[链接器错误] 对 `__glutCreateWindowWithExit@8' 的未定义引用

[链接器错误] 未定义对 `__glutCreateMenuWithExit@8' 的引用

[链接器错误] 未定义对 `glutSolidSphere@16' 的引用

如果我包含 glut.h 标头,就会出现上述问题。为什么?

没有它我不能使用 glutSolidSphere() ..我正在
使用 DEV C++ btw ..

0 投票
3 回答
6517 浏览

c - Dev C++编译C源文件

如何使用 Dev C++ 编译 C 源文件。我认为它会自动执行此操作,但由于某种原因,它编译时出现了几个错误,我认为这是因为您必须对其进行更改才能编译 C 文件。

示例测试代码:

0 投票
2 回答
2135 浏览

linux - 如何在windows中使用timeval等Linux lib

如何在 windows 中使用诸如 timeval 之类的 Linux lib 我已经安装了 cygwin 和 dev c++ 我不喜欢在 cygwin 中编译 在 dev c++ 下编译总是错误,例如 `gettimeofday' 未声明(首先使用此功能)

不幸的是,我没有足够的硬盘空间来安装 linux 或任何虚拟机

多谢

0 投票
1 回答
1066 浏览

c++ - DevC++ (Mingw) 堆栈限制

是否可以在 DevC++ 中设置堆栈限制?基本上与 Linux 上的“ulimit -s”相同。

0 投票
2 回答
5381 浏览

opengl - 带有 Dev-C++ 和 SDL 的 OpenGL v2.0 着色器?

我正要在 Windows 下用 Dev-C++ 重建我的库;但是,不支持我在此期间添加的着色器功能,编译器找不到相关函数(::glCreateShader()、::glCreateProgram() 等)

在互联网和 Dev-C++ 文件夹中挖掘,我发现 OpenGL 实现(gl.h)只有 v1.1。我找到了从SGI下载最新标头的建议。我找到了 gl3.h,但是,经过仔细审查后,我意识到 gl.h 无论如何都不包含在我的项目中,我应该查看 SDL/SDL_opengl.h。

编辑: SDL_opengl.h确实包含 gl.h声明了相关函数的原型。所以问题是,为什么我给出的是编译时错误而不是链接器错误?

(我的库只链接到 mingw32、libOpenGL32、libSDL、libSDL_Image 和 libSDL_Mixer,就像在 OSX 下(当然,mingw32 除外)我没有任何问题。)

如何在 Dev-C++ 和 SDL 中使用 OpenGL v2.0 着色器?

0 投票
2 回答
416 浏览

c++ - 在 eVC++ 3 中使用通用头文件

我正在学习 C++,并且我的计算机中安装了 eVT(eMbedded Visual Tools),因为我的 VB 袖珍程序使用了 eVB 3(eMbedded Visual Basic),但我正在学习 C++,然后我想使用 eVC++ 3用于开发一些命令行应用程序,然后仅用于测试我创建了一个HelloWorld应用程序,仅用于测试,但是当我尝试编译时它给了我这个错误:

致命错误 C1083:无法打开包含文件:“iostream”:没有这样的文件或目录执行 clarm.exe 时出错。

请记住,我无法更新到 eVC++ 4,因为我想为 Windows CE 3.1 构建程序 谢谢!

0 投票
3 回答
949 浏览

c - 代码仍然在没有任何包含的情况下运行(Bloodshed 的 Dev-C++)

我目前正在学习和试验 C,并且正在使用Bloodshed 的 DEV-C++作为 IDE。

现在,我刚刚意识到以下代码(因为它是......不包含或什么都没有)编译并运行:

现在,如果我没记错的话,这个源代码中不应该包含两个头文件以使其正常工作吗? stdio.h并且string.h...但是正如您所看到的,我没有添加它们并且代码仍然编译并成功运行。

我的抱怨是我希望编译器是“严格的”,因为由于我还在学习 C,所以我不希望代码在正常情况下不应该运行。

那么,有什么办法可以防止 Dev-C++ 在涉及到includes 时“纠正我的错误”,即让它更“严格”?

0 投票
3 回答
14189 浏览

c++ - 如何在 dev c++ 中创建头文件

我第一次在 dev c++ 中创建头文件我已经根据正确的格式创建了 add.h 和 add.cpp。我不知道在哪里存储它们,当我使用标题时,它显示了很多错误