编译问题

 更新时间:2016年11月25日 17:16  点击:2011
这章节搜集了很多编译时会产生的错误情况。
 1. 我用匿名CVS得到最新版的源代码包, 但没有配置脚本文件! 2. 我在配置 PHP 在 Apache下工作时出了问题。
 它说不能找到 httpd.h, 可是我看它就在那里! 3. 当我运行conifgure时,它说它不能找到include文件或 一些库: GD, gdbm, 或其它的一些包! 4. 我在编译文件 language-parser.tab.c时, 出错,提示: yytname undeclared. 5. 当我运行 make, 起初正常但 最终失败了,在连接最后的应用时,出错说找不到一些文件。
 6. 在连接 PHP 时, 出一堆错说 undefined references。
 7. 我不清楚怎样在 Apache 1.3下编译PHP。
 8. 我按照步骤一步一步安装了Apache模块(Unix下), 可是在浏览器里打开 PHP 脚本时它却问我是否要保存。
 9. 系统说使用: --activate-module=src/modules/php4/libphp4.a, 可那文件根本不存在, 我只好改成 --activate-module=src/modules/php4/libmodphp4.a 好了,它不工作了! 该怎么办? 10. 我要把PHP编译成Apache的静态模块,用: --activate-module=src/modules/php4/libphp4.a 可是系统说我的编译器不是 ANSI 兼容的。
 11. 我用 --with-apxs编译PHP时, 我总是得到一些奇怪的错误。
 12. 在 make时, 我得到很多关于microtime错误, 还有许多 RUSAGE_ stuff. 13. 我想升级PHP,我在哪可以看到我现在运行的PHP 的当初配置安装时所使用的./configure 一行的内容? 14. 编译带GD库的PHP时,它不是给一些奇怪的错, 就是执行时产生 segfaults 段错误.
1. 我用匿名CVS得到最新版的源代码包, 但没有配置脚本文件!
你必须安装 GNU autoconf 包,这样可以从 configure.in生成配置脚本文件. 只要运行在CVS服务器得到源代码的顶级目录下的 ./buildconf。
 (注意, 除非你运行configure --enable-maintainer-mode 选项, 配置脚本是不会重新生成, 即使configure.in 文件已更新, 所以当你发现 configure.in 改变了,你也要手工做一遍. 在config或config.status 运行后应该在你的Makefile里能看到象@VARIABLE@这样的标号。)
2. 我在配置 PHP 在 Apache下工作时出了问题。
 它说不能找到 httpd.h, 可是我看它就在那里!
你要告诉 configure/setup 脚本 Apache 的顶级目录的位置。
 就是说你要标明 --with-apache=/path/to/apache , 而不是 --with-apache=/path/to/apache/src.
3. 当我运行conifgure时,它说它不能找到include文件或 一些库: GD, gdbm, 或其它的一些包!
你可以看看 configure 脚本,那些头文件或非标准库的位置,要送一些特殊的标志给C预处理器。例如: CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
不久前,蔡学镛先生发表了两篇分别叫做"程序与香鸡排","再论香鸡排"的文章,受到的回响之大,据说连作者本人都接到该文的转寄。足以见得该文的内容道出了台湾程序设计师心里最深处的想法。所以,本文想针对台湾程序设计师来做讨论,看看身为一个程序设计师,究竟犯了什么过错,导致大家宁愿卖鸡排也不愿再继续写程序。璩美凤小姐为自己惊动台湾社会的行为写了真情忏悔录,我们也该真诚地检讨一下自己。
本文:
在台湾,大部分的人都有个认知,就是"搞硬件的比搞软件的要好赚","做SA/SD比coding地位要高"。那些做ID Design的家伙待的公司所发的股票,永远比搞Software Design的人待的公司发的还多,股价也高出好几倍。搞SA/SD的人,在公司地位好象也比单纯写程序的人高。于是我的父亲有一次问我:"是不是搞硬件的人智商比较高?","是不是搞分析设计的人比较有地位?"
事实上,在学生时期我就认识不少人,有的人因为程序写不过别人,所以转换跑道专攻硬件;也有人觉得每天面对示波器和逻辑分析仪让他们头痛,工程数学也学不过人家,所以转行搞软件。到了实际上面对许多前来接受教育训练的学员之后,发现有人是因为写了十几年BIOS和driver,觉得乏味而没有前途,所以想试看看应用程序的开发;有人则是因为受不了客户每天改需求,而且写IOS和driver的人好象比较少,价格比较高,因此想学习如何撰写系统软件。询问那些上高阶课程的朋友,有的人发现自己只会胡做SA/SD唬烂老板和客户,所以希望重新打好基础,从基本的coding做起;有的人则因为写程序写太久,觉得应该往上走向SA/SD的路子,毕竟老了程序就写不动了。这个世界上什么样的人都有,绝对不能以小羡大。就很像搞政治的老是骗我们台湾只分成外省人和本省人;搞帮派的人告诉我们警察是带着枪的流氓。实际上,每个族群大家在没有被分化之前都相处的和乐融融,而虽然有警察掳妓勒索,上班时间跑去聚赌,但是也有开我们罚单时酌情轻罚的警察,和保护我们身家性命的警察。
即使如此,身为一个程序设计师还是要问,那为什么写程序的好象地位就是比较低? 笔者认为,这是进入门槛的问题。会做相同事情的人多了,就会削弱那样技能的价值。就很像考过MCSE/MCSD证照的人,通常比起考过SCJP/SCJD证照的人要来的没价值,前者因为考过的人实在太多,而后者考过的人少,仅是如此而已。但是绝不是代表考过MCSE的人,素质就比考过SCJP的人要差,也不代表考过SCJP的人,实力真的比较高段。相信求学的时候您一定遇过一种人,他实力也不怎样样,可是考试的时候他x的就是考的比我们高,怎么我们心里就是不服,可是大多数老师偏偏就是比较喜欢分数高的人。因此,满坑满谷的人自称会写程序,老板不愁找不到可以做project的人,你要求的薪水和价格很高? 没关系,找个学校刚毕业的小子,写的比你快,写的比你好,用的技术比你新,更重要的,价格比你这个老屁股便宜一半。所以程序设计师在雇主心中的地位日益低落,自然有迹可循。
Smarty实例教学 实例篇(三、使用ADODB连接数据库)
前两个月因为工作上的原因一直很忙,所以没有及时完成这个教程,正好今天周六不用加班,抽个空完成它吧! 在开始新的的教程的时候,我
先把以前的我写的那个教程中的一些错误的地方修改过来,在这里要感谢 nesta2001zhang兄弟,是他找出了文章中的一些错误,否则真的被别人
骂"误人子弟了"(说来真是惭愧,我的初稿发布后后就发现在一大堆的问题,后来一些时候发重新修改后的文件中居然也出现了错误,真是不应
该...)
在上几篇教程中的:
=========================================================
while($db->next_record() && $i > 0)
{
$array[] = array("NewsID", csubstr($db->f("iNewsID"), 0, 20),
"NewsTitle", csubstr($db->f("vcNewsTitle"), 0, 20));
$i--;
}
=========================================================
应该更改为:
=========================================================
while($db->next_record() && $i > 0)
{
$array[] = array("NewsID" => $db->f("iNewsID"),
"NewsTitle" => csubstr($db->f("vcNewsTitle"), 0, 20));
$i--;
}
=========================================================
为什么这样改呢?因为第二种方法更清晰明了一些,实际上第一种方式所执行的效果与第二种方法没什么差别,而且那几个程序我都曾经调试过,
没有任何问题.
好了,那我们今天就先来说说ADODB.说到ADODB,可能做过ASP的都知道WINDOWS平台的ADO组件,但我们这里的ADODB不是微软的那个数据库操
作组件,而是由php语言写的一套数据库操作类库,先让我们来看看它倒底有什么样的优点.
1. 以标准的SQL语句书写的数据库执行代码在进行数据库移植时不用更改源程序,也就是说它可以支持多种数据库,包括ACCESS.
2. 提供与微软ADODB相似的语法功能.这一点对于从ASP转行到PHP的人们是一大福音,它的很多操作都与WINDOWS中的ADODB相似.
3. 可以生成Smarty循环需要的二维数组,这样会简化smarty开发.这一点是等会我给大家演示.
4. 支持数据库的缓存查询,最大可能的提高查询数据库的速度。
5. 其它的实用功能.
--------------     

明白你想问什么     

--------------     

漫无边际的提问近乎无休无止的时间黑洞。最能给你有用答案的人也正是最忙的     

人(他们忙是因为要亲自完成大部分工作)。这样的人对无节制的时间黑洞不太     

感冒,因此也可以说他们对漫无边际的提问不大感冒。
    

如果你明确表述需要回答者做什么(提供建议,发送一段代码,检查你的补丁     

或是别的),就最有可能得到有用的答案。这会定出一个时间和精力的上限,     

便于回答者集中精力来帮你,这很凑效。
    

要理解专家们生活的世界,要把专业技能想象为充裕的资源,而回复的时间则     

是贫乏的资源。解决你的问题需要的时间越少,越能从忙碌的专家口中掏出答案。
    

因此,优化问题的结构,尽量减少专家们解决它所需要的时间,会有很     

大的帮助--这通常和简化问题有所区别。因此,问“我想更好的理解X,     

能给点提示吗?”通常比问“你能解释一下X吗?”更好。如果你的代码     

不能工作,问问它有什么地方不对,比要求别人替你修改要明智得多。
    

------------------------     

别问应该自己解决的问题     

------------------------     

黑客们总是善于分辨哪些问题应该由你自己解决;因为我们中的大多数都     

曾自己解决这类问题。同样,这些问题得由你来搞定,你会从中学到东西。
    

你可以要求给点提示,但别要求得到完整的解决方案。
    

----------------     
Obtaining PHP
This section has details about PHP download locations, and OS issues. 1. 我在哪儿能得到PHP? 2. 有预编译的二进制版本吗? 3. 我在哪儿能得到可选的PHP扩展库 ? 4. 我怎样做才能使这些库运作起来? 5. 我在我的windows上用CVS得到最新版本的PHP源代码, 我怎样编译它? 6. 我在哪儿能找到 Browser Capabilities File?
1. 我在哪儿能够得到PHP?
你可以在任何PHP成员站点上下载PHP. 这些站点可以在 http://www.php.net/找到。
 你也可以使用匿名CVS 得到绝对是最新版本的源代码。要想知道更多的CVS信息, 请查阅http://cvs.php.net/.
2. 有预编译的二进制代码吗? ?
我们仅仅发布windows下的二进制代码,因为我们不可能编译完每一种主机(Unix/Linux)下的PHP不同选项的二进制代码 还有的是,许多Linux内置PHP。Windows下的二进制代码可以在我们的站点上下载 , 而Linux的二进制版本, 请参阅你的Linux发布商的站点。
3. 我在哪儿能得到可选的PHP扩展库 ?
注意: 那些标有*的不是 thread-safe 库, 不应该作为多线程的Windows web servers (IIS, Netscape)的模块来使用。它们在 Unix/Linux平台下是没有这个限制的。
LDAP (Unix).
LDAP* (Unix).
LDAP (Unix/Win) : Netscape Directory (LDAP) SDK 1.1.
free LDAP server.
Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.
SNMP* (Unix): .
GD* (Unix/Win).
mSQL* (Win).
mSQL* (Unix).
PostgreSQL (Unix).
IMAP* (Win/Unix).
Sybase-CT* (Linux, libc5) : Available locally.
FreeType (libttf):.
ZLib (Unix/Win32).
expat XML parser (Unix/Win32).
PDFLib.
mcrypt.
mhash.
t1lib.
dmalloc.
aspell.
readline.
4. 我怎样使这些库运作起来?
你需要按着提供的库指引来做. 有一些库是在你运行PHP配置脚本的时候自动被检测到的(GD库), 而另外的一些库,你不得不 '--with-EXTENSION' 打开选项 'cofigure'. 运行 'configure --help' 可以看到这些信息.
5. 我在我的windows上用CVS得到最新版本的PHP源代码, 我怎样编译它?
首先,你必须安装 Microsoft Visual C++ v6 (v5 也可以,但我们是在v6下),你需要一些支持文件. ,参见手册 在Windows下编译PHP.
6. 我在哪可以找到 Browser Capabilities File?
你可以在下面的站点 http://www.cyscape.com/asp/browscap/找到一个名为 browscap.ini 的文件。

[!--infotagslink--]

相关文章

  • js修改input的type属性问题探讨

    js修改input的type属性有些限制。当input元素还未插入文档流之前,是可以修改它的值的,在ie和ff下都没问题。但如果input已经存在于页面,其type属性在ie下就成了只读属性了,不可以修改。...2013-10-19
  • PHP传值到不同页面的三种常见方式及php和html之间传值问题

    在项目开发中经常见到不同页面之间传值在web工作中,本篇文章给大家列出了三种常见的方式。接触PHP也有几个月了,本文总结一下这段日子中,在编程过程里常用的3种不同页面传值方法,希望可以给大家参考。有什么意见也希望大...2015-11-24
  • Mysql常见问题集锦

    1,utf8_bin跟utf8_general_ci的区别 ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的; bin 是二进制, a 和 A 会别区别对待. 例如你运行: SELECT * FROM table WHERE txt = 'a'...2013-10-04
  • Mysql大小写敏感的问题

    一、1 CREATE TABLE NAME(name VARCHAR(10)); 对这个表,缺省情况下,下面两个查询的结果是一样的:复制代码 代码如下: SELECT * FROM TABLE NAME WHERE name='clip'; SELECT * FROM TABLE NAME WH...2015-03-15
  • linux mint 下mysql中文支持问题

    一.mysql默认不支持中文,它的server和db默认是latin1编码.所以我们要将其改变为utf-8编码,因为utf-8包含了地球上大部分语言的二进制编码 1.关闭mysql服务 sudo /etc/init.d/mysql stop 2.修改mysql配置文件 mysql配...2015-10-21
  • Vue3 编译流程-源码解析

    今天将从 Vue 的入口文件开始,看看声明了一个 Vue 的单文件之后是如何被 compile-core 编译核心模块编译成渲染函数的。下面小编讲解并附上代码分析展现在文章里,感兴趣的小伙伴不要错过奥...2021-09-25
  • VSCode C++多文件编译的简单使用方法

    这篇文章主要介绍了VSCode C++多文件编译的简单使用方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
  • vscode和cmake编译多个C++文件的实现方法

    这篇文章主要介绍了vscode和cmake编译多个C++文件的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
  • C#使用队列(Queue)解决简单的并发问题

    这篇文章主要介绍了使用队列(Queue)解决简单的并发问题,讲解的很细致,喜欢的朋友们可以了解一下...2020-06-25
  • 使用 C# 动态编译代码和执行的代码

    一个控制台例子, 演示了如何用 C# 动态的生成代码, 编译代码, 最后执行...2020-06-25
  • windows 10 安装和使用中5个常见问题

    2015年7月29日0点起,Windows 10推送全面开启,Windows7、Windows8.1用户可以免费升级到Windows 10,用户也可以通过系统升级到Windows10,在这过程中,用户会遇到这样那样的问题,下面小编总结了windows 10 安装和使用中5个常见问题,需要的朋友可以参考下...2016-01-27
  • 手把手教你如何编译打包video.js

    这篇文章主要介绍了编译打包video.js的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2020-12-09
  • Windows系统下Eclipse搭建ESP32编译环境及安装过程

    Ecppse 使用了 ESP-IDF 中的 Makefile 支持。这意味着您需要从创建 ESP-IDF 项目开始。您可以使用 github 中的 idf-template 项目,接下来通过本文给大家介绍Windows系统下Eclipse搭建ESP32编译环境及安装过程,感兴趣的朋友一起看看吧...2021-10-18
  • jsp 自动编译机制详细介绍

    这篇文章主要介绍了 Jasper的自动检测实现的机制比较简单,依靠某后台线程不断检测JSP文件与编译后的class文件的最后修改时间是否相同,若相同则认为没有改动,但倘若不同则需要重新编译,需要的朋友可以参考下...2016-12-02
  • php中session常见问题分析

    PHP的session功能,一直为许多的初学者为难。就连有些老手,有时都被搞得莫名其妙。本文,将这些问题,做一个简单的汇总,以便大家查阅。 1. 错误提示 引用 代...2016-11-25
  • QT5编译使用QFtp的方法步骤

    这篇文章主要介绍了QT5编译使用QFtp的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-04
  • javascript学习指南之回调问题

    回调函数被认为是一种高级函数,一种被作为参数传递给另一个函数(在这称作"otherFunction")的高级函数,回调函数会在otherFunction内被调用(或执行)。回调函数的本质是一种模式(一种解决常见问题的模式),因此回调函数也被称为回调模式。...2016-04-25
  • 解析C语言与C++的编译模型

    C++继承了C的编译模型,C语言的编译链接模型相对简洁,但C++继承了这些机制之后变得更加复杂难以理解,这里就来带大家简要解析C语言与C++的编译模型...2020-04-25
  • json error: Use of overloaded operator [] is ambiguous错误的解决方法

    今天小编就为大家分享一篇关于json error: Use of overloaded operator [] is ambiguous错误的解决方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...2020-04-25
  • C++基于递归算法解决汉诺塔问题与树的遍历功能示例

    这篇文章主要介绍了C++基于递归算法解决汉诺塔问题与树的遍历功能,简单描述了递归算法的原理,并结合实例形式分析了基于递归算法解决汉诺塔问题与数的遍历相关操作技巧,需要的朋友可以参考下...2020-04-25