无法编译所做的编辑
1. C++无法编译
我刚开始也遇到了这个问题 看到一篇很有用的博客 分享一下
希望对你有所帮助!
2. DEV-C++无法编译,如图啊 急求帮助!
我刚开始也遇到了这个问题 看到一篇很有用的博客 分享一下
希望对你有所帮助!
3. window10安装好Devc++,写完程序,无法编译是怎么回事
执行“开始”→
“运行”,输入gpedit.msc打开组策略编辑器。在左侧的窗格中依次定位到“计算机配置”
→“windows
设置”→“安全设置”→“本地策略”→安装选项,找到用户账户控制:检测应用程序安装并提示上升,勾选启动就可以。
4. c语言软件Dev,vc,都无法编译是为啥。我win10
这个最好是重新装一下系统,然后重新做一个编辑器的话,从那个根目录里面把这个证书那些清除掉,然后重新装最新的证书应该就可以了。
5. Latex 同一个文件可以用在一台电脑上正常编辑,但是到了另一台新电脑上就无法编译
出现这个问题的原因是 :
两台电脑上的myeclipse中的编码格式不一致导致的, 修改方式为:
点击windows --preferences-- general-- workspace-- 右边找到text file encoding,下面选择other --然后选择UTF-8。两台电脑的myeclipse都这么设置,
然后就可以导入了。
6. DEV-C++无法编译是怎么回事
我刚开始也遇到了这个问题 看到一篇很有用的博客 分享一下
希望对你有所帮助!
7. Editplus 编辑一个程序无法编译和运行(下面具体说状况)
请你仔细检查一下
可能是c盘中间有空格:
C:\Users\lenovo>cd C:\Program Files
C:\Program Files>javac Hello.java
这是我刚测试的,可以编译成class.
其次检查一下,系统环境变量是不是可能会损坏的,classPath有没有配置好,可能之前是好的,使用了360的强制卸载其他软件以后,会修改classpath的值,可能会出现问题。
还有注意添加变量值的时候,原先没有的" ;"号也要加上去。
遇到问题自己多测试,希望能帮到你。呵呵
8. 为什么我的c语言编辑器无法编译了
看你新建的项目,名字也没有,什么也没保存只是在软件上敲了一大堆,保存一下再编译
9. 我在linux环境下怎么就是编译不成功
编译不成功多半软件功能开关设置及依赖关系不支持。
首先要了解编译的过程,真正了解了编译的过程后就可以比较轻松的编译各种软件了。
1、configure,可以在configure 执行一下./configure --help来大致了解一下该软件的一些开关和支持的性能,然后根据使用需要来设置需要开启的性能和需要关闭的性能,以及需要哪些支持库等等,然后再指定一下编译路径,做完这一切后,满屏幕的check ....就开始了,这就是configrue的过程,和所做的事情
2、make,其实这一步才是真正的编辑步骤,而configure只是做一个环境的check,检查系统环境及lib是不是对上一步所开启的参数支持,只有check不出错,也就是configure不出错,就可以比较顺利的进行编译也就是make
3、make install 安装,当成功编译后就可以通过make install进行安装了,安装完成后就可以使用了。
比较容易报错的地方就是configure这一步,因为这一步会检查软件及在configure这一步的设置开关功能中需要的依赖关系,并对现行系统进行检查,尤其是最小化安装的系统,报错会比较多,可根据具体报错内容来安装相应的安装包来完成软件的依赖,直到check全部通过。有些软件在make时也需要调用一些库,具体要看软件的reademe来了解具体编译要求。如果再不行,就只能网上寻求帮助了。
另外,编译也是一个经验活,只编译得多了,对一些常见的错误就会比较了解了,必定软件依赖的库常见的就那几个,建议每编译一款软件做一个小笔记,把处理的错误或遇到的情况记录下来,这样以后再编译时,会事半功倍!
10. 当程序不能编译时怎么办调试configure
但是,这样行不通时怎么办?在本文中,Peter Seebash 讲述了当自动的配置脚本失效时应该如何去做——以及作为开发者您应如何尽量避免这种错误。毕竟,如果您的程序无法编译,其结果将和您的程序编译后不能运行一样,您的用户会减少。
现在许多开放源代码的程序都会附带有 configure 脚本。这种脚本的用途之一是自动进行对目标新系统的猜测过程。在过去,程序会附带一个 Makefile 文件,这个文件中有 6 个不同的编译标记和选项,但只会用到一个,其余全部注释掉,并且会有一个注解,告诉您“为您的系统选择合适的标记”。如果配置选项更复杂,可能还会有一个名为 config.h 的长长的 C 头文件,其中包含一些要设置的标记,这依赖于主机系统变量。
第一个方法很简单,在代码中使用 #ifdef 以支持两种系统,例如 BSD 和 System V。由于 Unix 的类型的增加,更为实用的方法是对每一个特性使用 #ifdef。每个系统的代码如下:清单 1. 每个系统的代码#ifdef SUNOS4 || NEXT || NETBSD || FREEBSD || OPENBSD
#include <string.h
#else#include <strings.h
#endif每个特性的代码如下:清单 2. 每个特性的代码#ifdef HAS_STRING_H
#include <string.h
#else#include <strings.h
#endif后者更容易适应新系统,但需要开发者进行大量的工作。由于现在有太多可能的目标系统,因此,第二种方法对用户来说帮助很大,不仅仅是可以自动生成配置头文件。完成这项任务的一种方法是使用 GNU autoconf 代码来生成 configure 脚本。这个脚本会去执行必要的测试,并创建一个具有适当值的配置头文件。
这种脚本的另一个功能是以一致的方式设置预定义的变量。用手工编辑标记一直存在一个问题,即修改了 Makefile 文件(比如将其安装到 /usr/gnu 而不是 /usr/local 目录下)却忘记修改头文件中相应的值。当然,这样的结果是,编译后的程序不知道到哪里去寻找它们自己的数据文件。使用 configure 脚本的一个好处是可以自动完成一致的安装(如果维护者做得没错的话)。
开发人员请注意,一个好的 configure 脚本的另一个好处在于,它会允许用户指定一些个人偏好,例如使用 /usr/gnu 而不是 /usr/local。
这些如何成为可能?编译,再编译configure 的许多功能实现机制其实很简单。为了能切身体会,您可以设计一个小测试程序,这个程序当且仅当期望的条件得到满足时才可以编译。将它保存在一个临时文件中,然后尝试编译它。例如,假定您想知道 X Windowing System 是否安装在 /usr/X11R6 目录下。一种方法是做一个如下的测试程序:#include <X11/X.h
int main(void) { return 0; }现在,如果您用编译器来尝试进行编译,那么只有当 <X11/X.h 在编译器的 include 路径中时,编译才会成功。因此,对每一个您认为 X 可能安装到的目录,可以将对应的 (directory)/include 加入到编译器的 include 路径中,并尝试对程序进行编译。如果采用某个值时示例文件可以编译,那么您就得到了正确的 include 路径。
请注意在 autoconf 中已经预定义了各种测试程序。如果可能,就直接使用这些测试程序,而不用自己去写。这样有很多好处。首先,autoconf 的新版本会改进这些测试程序,修正它们的错误,否则您将不得不自己去做这些工作。其次,这样会节省您的时间。当然,更好的方法是完全避免测试。如果您确认某一个测试是没有必要的(例如,即使机器字节多于 8 位也仍需要使 sizeof(char) 为 1),您可以完全不去进行这个测试。
有一些测试是功能测试;它不足以确定是否存在一个名为 memcmp() 的函数,它的语义必须正确。通常,这些测试用于只是在一两个平台上被注意到的非常不明显的错误。这些测试实际上会去运行测试程序,并检查它的输出。测试程序遵循标准的 Unix 习惯:如果测试通过则返回值为 0,如果失败则返回一个非 0 值。
一旦您有了足够的测试程序,您可以用它们来自动确定必需的编译标记和定义,以将它们放到头文件的某个地方。通常,configure 脚本会允许用户给出部分或全部已知的条件,而不是让脚本自己去猜测。
来看一个特例,假定,系统的 brokenmemmove() 出现了问题。如果您不知道它现在有一个只会影响少部分程序的 bug,您可能会编译一个程序并将其发布为产品,而没有意识到这样您将会遇到偶然的灾难性错误。
在许多情况下,一个冗长而复杂的 configure 脚本的最终结果是这样的:目标系统提供了这个程序用到的每一个标准特性,而且它们正确工作。在这种情况下为什么不手工去设置这些标记呢?这对开发者来说是可行的,而对众多用户来说就不可以了。用户可能不会知道到他们的 Linux 版本存在特定的 bug。他们可能不知道已经安装了哪些软件包,或者安装到了何处。脚本帮那些最需要帮助的人来完成大部分的例行公事的工作。当脚本出错时,引发的额外工作的代价可能不会太大。
错在何处?既然您已经基本上了解了 configure 都做了些什么工作,您可以开始寻找错误了。有两种可能的 configure 错误。一种是 configure 是正确的,而您的系统缺少必要的先决条件。绝大多数情况下,configure 脚本会正确诊断出这种错误。更为麻烦的情况是 configure 本身的错误。这样的结果或者是不能生成配置,或者生成一个不正确的配置。
当 configure 的猜测无误,而您缺少先决条件时,您所要做就是要满足缺少的那些先决条件。当您找到并安装好后,再重新运行那个报告缺少先决条件的 configure 脚本,就可以成功了。(不要忘记删除 config.cache 文件,这个文件缓存了上一次测试的结果;您应该让 configure 从头开始。)如果您正在开发 configure 脚本,您需要确保您给出的错误消息有意义。如果您测试的是一个函数,而这个函数是一个常见的可添加的软件包的一部分,那么不要告诉用户缺少的函数的名称 —— 告诉用户他们需要的软件包。确保将先决条件信息写入 README 文件中。并且,请一定要告诉人们您测试使用的其他软件包的版本号。
阅读文档无论何时,当 configure 失败时您首先要做的是运行 configure -h,并检查参数列表。如果它找不到您确认已经安装的库,您可能可以指定到另一个位置来找到这个库。您还可以禁用和启用某些特性。例如,用于 Angband (一个 Roguelike 游戏)的 configure 脚本有一个可选的标记 —— enable-gtk,以告诉脚本在编译时启用 GTK 支持。如果没有这个标记,编译时根本不会去尝试。
如果您的系统配置得比较奇怪,您可能不得不为 configure 脚本设置一些非常详细的变量,而且如果是在交叉编译,您很可能得做一些非常特别的事情。CC 是 configure 用于指定 C 编译器的变量,通过指定 CC 的值可以解决许多问题。如果您指定了编译器,configure 将使用那个编译器而不用去猜测需要使用哪一个。要注意的是,这样您可以在命令行中指定选项和标记。例如,如果您希望编译时支持调试符号,尝试:CC="gcc -g -O1" ./configure(这里假定您使用的是 sh 系列的 shell;在 csh 中,用 setenv 来设置环境变量 CC。)阅读 config.log当 configure 脚本运行时,它会创建一个名为 config.log 的文件,其中记录的是测试日志和得到的结果。例如,一个典型的 config.log 片断如下:清单 3. config.log 的典型内容configure:2826: checking for getpwnam in -lsun
configure:2853: gcc -o conftest -g -O2 -fno-strength-rece conftest.c -lsun &5
ld: cannot find -lsun
configure:2856: $? = 1
configure: failed program was:
(a listing of the test program follows)如果我的系统中,-lsun 应该提供 getpwnam(),我应该可以使用命令行来对其进行确切检查,然后再使用测试程序。只需进行少量这样的调试,我就可以根据得到的信息来修改 configure 脚本。请注意有帮助的行号;这个测试从 configure 脚本的第 2,826 行开始。(如果您是一个 shell 程序员,您可能会喜欢在阅读 configure 脚本片断时打印出行号;在 shell 中 $LINENO 不能自动地被扩展为合理值,脚本使用 sed 创建一个包含有行号的自身拷贝!)当一个测试失败或者得到意外的结果时,最好先去读一读日志文件。请注意,有时测试失败仅仅是因为上一个测试的失败,这种失败实际上并不重要。例如,configure 可能会因为找不到一个您闻所未闻的库而退出,而这可能是因为测试标准 C 库中某个功能的程序失败而导致无法找到那个库。在这种情况下,只需要解决第一个问题,第二个问题也就不会再出现了。
一种情况是测试程序设计不正确而可能