自己的问题记录

来源:互联网 发布:本地网络电缆被拔出 编辑:程序博客网 时间:2024/05/31 18:53

                                                                                       问题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编译器编译程序时遇到的一些问题

我的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。就可以了