【发布时间】:2011-05-09 11:49:15
【问题描述】:
我对 C++ 很陌生;我现在在各种应用程序上使用了多个 SDK,每次都遇到无法编译“示例代码”的问题。这是一个非常广泛的问题,基本上是关于通过网络给出的任何示例代码 - 使事情编译的标准程序是什么?我知道如何编译自己编写的代码,但是当给定一个包含多个 CPP 和 H 文件的大型项目时,我应该从什么开始?我的第一个调用端口,在 Dev-C++ 中打开“main.cpp”并点击“编译”按钮通常会引发有关头文件不可用等错误。
我不会给出一个具体的例子,因为这已经发生了好几次了。我觉得作为一个开始掌握 C++ 的人,如果我可以从可以工作的代码开始并自己调整它,而不是费力地逐个构建,我会学得更快。
最近的例子是一个公司提供的一组示例代码,里面有10个文件:
-Arial.ttf
-demo_resources.rc
-icon.ico
-main.c
-simple.dsp
-simple.dsw
-simple.exe
-simple.h
-trial.c
-trials.c
运行 .exe 文件绝对没问题;但是,如果我打开 main.c 并按编译,我会收到许多错误消息。例如,main.c 中的前两行代码是:
#include "simple.h"
#include <sdl_text_support.h>
仅此一项就会发出错误消息:
1: expected unqualified-id before "public"
1: expected `,' or `;' before "public"
2: In file included from trial.c
很明显,我做错了什么,因为这段代码过去一定是为其他人编译的,才能生成 .exe 文件。同样,这不是一个孤立的问题,我一直都有这个问题。
由于 Dev-C++ 完全具备处理普通的旧 C 文件的能力,我看不出这是问题所在。其次,simple.h 肯定包含在正确的目录中。但是,第二个包含 sdl_text_support.h 显然不在我上面的文件列表中。我搜索了 SDK 的其余部分,发现该文件潜伏在其他地方。如何使用 Dev-C++ 显式引用头文件的位置?
任何关于如何编译预制项目的一般教程或任何形式的帮助都将不胜感激。
【问题讨论】:
-
DevC++ 是一堆无人维护的傻瓜。请改用 Code::Blocks。
-
首先,放弃 DevC++。它老了,死了,不再受支持。选择 Code::Blocks 或 Visual Studio Express 之类的东西(我认为它就是这样称呼的)。其次,很难给你一个关于如何编译代码的通用答案。只需阅读 IDE 的文档即可。尤其是如何设置包含路径之类的东西。
-
或 Visual Studio express。您可能对 VS 有更好的运气,因为您的示例似乎是为它构建的(dsp 和 dsw 文件)。
-
我曾尝试使用 Visual Studio Express,但只是被告知该文件必须转换为当前格式。继续这样做不会导致任何事情发生。虽然我现在已经改变了两次程序,但我在接下来的几个小时内都没有进展!