问题1
linux中装软件时碰到的一些错误
红帽5装firefox和谷歌浏览器时,总是出现:
"error while loading shared libraries: libpangocairo-1.0.so.0: cannot open shared object file: No such file or directory"
像这一类错误
: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory
原因都是缺少库文件
库文件一般在/usr/lib/目录下,可以查看是否有相关文件。
有时侯是因为系統不知道xxx.so 放在哪個目錄下。這個時候就要在/etc/ld.so.conf中加入xxx.so所在的目錄。一般而言,有很多so檔會在/usr/local/lib這個目錄下,所以在/etc/ld.so.conf中加入/usr/local/lib這一行,可以解決此問題。
將 /etc/ld.so.conf存檔後,還要執行「/sbin/ldconfig –v」來更新一下才會生效。
问题2
我的gcc是3.4.3版本的
fuck.h
void func();
fuck.cpp
#include<stdio.h>
void fuck()
{
printf("fuck\n");
}
test.cpp
#include<stdio.h>
#include"fuck.h"
int main(void)
{
fuck();
printf("I am ok\n");
return 0;
}
linux中,fuck.h,fuck.cpp,test.cpp这三个文件在同一目录下。
vc++6.0中,这三个文件是在同一个工程中。
编译时,gcc中显示错误
vc++6.0中能运行,一切很正常。
Undefined reference to 错误:这类错误是在连接过程中出现的,可能有两种原因∶一是使用者自己定义的函数或者全局变量所在源代码文件,没有被编译、连接,或者干脆还没有定义,这需要使用者根据实际情况修改源程序,给出全局变量或者函数的定义体;二是未定义的符号是一个标准的库函数,在源程序中使用了该库函数,而连接过程中还没有给定相应的函数库的名称,或者是该档案库的目录名称有问题.
“undefined reference to ”一般是在找不到相应的库文件的时候产生的,也跟具体的makefile文件有关系。
问题3:
C程序编译时warnning no newline at end of file
在文件最后一行添加以空白行即可。
问题4:
a.c:8:variable 'my' has initializer but incomplete type
my表明声明了,却没有定义。找不到my
a.c:9:unknown field 'name' specified in initializer
这个错误表明:在初始化器中找不到name字段
9行是:.name="longsanfeng"
问题5
为何linux内核中的c文件单独在gcc编译器下拿出来编译,会提示一大推出错。
那是因为找不到库文件,尽管都有头文件,但是编译器却找不到。
你可以仔细看那些错误提示,有很多显示变量没有被定义。可以在source insight发现其实那些变量定义在头文件中了。
c文件在内核中都是单独被编译的。所以每一个c文件的语法要正确。
http://topic.csdn.net/u/20110927/09/cce3d3c6-ea8b-4827-bc12-68019675e4f3.html?56735
问题6
加载模块时,出错,如下:
insmod:error inserting 'pcnet31.ko':-1 No such device
出错的原因是因为:此时我的系统中正运行着pcnet32.ko模块。两个几乎相同的模块。估计冲突了吧。
我把pcnet32.ko模块卸载后。在加载pcnet31.ko就对了。
问题7
我的source insight怎么有那么多函数或变量查不到定义啊?
没有同步文件,在“项目”(Project)->“同步文件”(Synchronize Files)。并勾1、2和5项,然后OK。就可以了
http://topic.csdn.net/u/20110920/09/36d729d4-dc05-45be-854c-cf799e7192e0.html
问题6
平时在虚拟机中编译内核从新内核启动,几乎就没出现过问题,可是一到物理机里面,就会出现各种各样的问题。经常引导系统启动时启动不了。在make menuconfig时,我都是用的正在运行的系统的配置文件。按道理该有的配置都有啊,可还是出问题。不晓得啊
2.6.24,2.6.25内核装在物理机上引导启动时,出现下面提示,导致启动不了。
“hda_codec: Unknown model for ALC883, trying auto-probe from BIOS...”
没错,主板集成声卡的codec是ALC883,像是没驱动的样子,但检查内核编译的情况应该没少什么。
搜了一圈发现了一个有价值的提示:2.6.27内核解决了ALC883的问题。
于是下载编译linux-2.6.27-rc6(现在还是测试版),问题解决。
http://hi.baidu.com/red_woods/blog/item/a09545d1374342d5562c8467.html
我升级到2.6.28.1版本内核,OK了
问题8 source insight怎么有那么多函数或变量查不到定义
在source insight中,一般即使鼠标点在函数或者变量处,context windows窗口就会显示其定义信息。
如下图所示,其中绿色的变量或者函数,鼠标一点击,就能看到其定义。
黑色的则看不到,可是我的这里面黑色的占了很大一部分比重啊。
解决方法:没有同步文件,在“项目”(Project)->“同步文件”(Synchronize Files)。并勾1、2和5项,然后OK。就可以了