问题2、configure过程出现错误
特点:这个错误我一开始认为是因为缺少这个叫odbc的错误引起的,但是装了odbc后还是出错,后来发现这里的信息应该这样看:STDERR: configure: WARNING: No odbc library found skipping odbc。出错的地方是configure,意思是配置文件在你初始化配置的时候出现错误。
注:当时还出现下面的错误信息,其实这部分信息不止一个错误,但是我们先关注第一个错。
STDERR: configure: WARNING: No odbc library found skipping odbc
configure: WARNING: "ODBC library - link check failed"
configure: WARNING: No OpenGL headers found, wx will NOT be usable
configure: WARNING:
wxWidgets must be installed on your system.
Please check that wx-config is in path, the directory
where wxWidgets libraries are installed (returned by
'wx-config --libs' or 'wx-config --static --libs' command)
is in LD_LIBRARY_PATH or equivalent variable and
wxWidgets version is 2.8.4 or above.
configure: WARNING: No 'xsltproc' command found: the documentation cannot be built
configure: WARNING: No 'fop' command found: going to generate placeholder PDF files
gcc: fatal error: no input files
compilation terminated.
make[3]: *** [../ebin/hipe_consttab.beam] Aborted
make[2]: *** [opt] Error 2
make[1]: *** [opt] Error 2
make: *** [secondary_bootstrap_build] Error 2
make[3]: *** [../ebin/hipe_consttab.beam] Aborted
make[2]: *** [opt] Error 2
make[1]: *** [opt] Error 2
make: *** [secondary_bootstrap_build] Error 2
---- End output of "bash" "/tmp/chef-script20120930-18247-lp90nh-0" ----
Ran "bash" "/tmp/chef-script20120930-18247-lp90nh-0" returned 2
那怎么解决这个问题呢?当然是去找这个configure文件,然后定位到出错这一行,看看它到底要做什么。
不过我当时比较懒,而且问了一下度娘一下子就找到答案了,所以也就没去看configure文件了。不过我们学学对方怎么分析的吧
浏览了一下configure的log,发县有"No odbc library found skipping odbc",将问题定位到了$src/lib/odbc/configure.in 178行
if test -f "$dir/include/sql.h"; then
is_odbc_std_location=yes
ODBC_LIB=-L"$dir/lib"
ODBC_INCLUDE="-I$dir/include"
break
fi
缺少头文件sql.h,所以这个问题其实和libiodbc、libodbc没有关系,需要的是unixodbc和unixodbc-dev。
不过我现在也有疑问,作者是如何根据缺少sql.h就能判断缺少后面的两个东西的?
注:这种缺少头文件的情况下,会有大量的提示信息找不到XXX符号,这也是一种比较明显的提示信息了。
这种在configure中出现的问题要如何解决,我正在探索中,大家也不妨去找找相关的文章看看是怎么解决的,应该有一个解决方法的。
注:现在提供的很多源码包都会带有configure文件,我们在编译之前,都会执行这个configure文件,它会检测我们系统的情况生成相应的Makefile文件。