Ubuntu下遇到问题整理
摘要:这些个主要是我在学《Linux程序设计》时,在Ubuntu 10.04下学习等遇到的问题!记录于此希望对某天同样开始学习Ubuntu的新手有帮助。
1>gcc编译hello world程序出错
错误信息:
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
错误原因:没有找到本地C库文件!
最后解决办法:
1>重装系统
2>后来学习后面知识时安装什么软件,好像又出现这个问题,终于找到解决发法,重装libc库
sudo apt-get remove libc6-dev
sudo apt-get install libc6-dev
但这样以前安装的curses库,mysql开发库都得重装
2>Ubuntu下Curses库使用
Curses库安装
sudo apt-get install libncurses5-dev
程序使用Curses库后编译问题
由于Curses库不是标准函数库,gcc编译时要加上-lncurses,在Ubuntu下发现
gcc -lncurses demo.c编译无法通过而
gcc demo.c -lncurses正确编译
3>Ubuntu下mysql使用
安装mysql
sudo apt-get install mysql-server mysql-client
安装mysql开发包
sudo apt-get install libmysqlclient15-dev(这个好像没有用到)
C调用mysql时编译命令:
gcc demo.c -o demo $(mysql_config --cflags --libs)
gcc -I/user/include/mysql demo.c -o demo -L/usr/lib/mysql -lmysqlclient
一般使用前者比较方便。
4>gcc编译时错误:函数调用中缺少哨兵
错误信息:
pexec.c: In function 'main':
pexec.c: warning: missing sentinel in function call
解决方法:
把execlp函数调用出参数0改为(char *)0即可
查阅资料结论是:
占用内存的时候,内存区域两端值不确定,所以会提示需要两边哨兵站岗. 说白了就是初始化!
5>gcc编译时错误
错误信息:fatal error:sys/types.h 没有这个文件或目录
错误原因:linux-kernel-headers(linux内核头文件没有升级或者未安装,找不到sys/types.h头文件
解决方法:sudo apt-get install build-essential
缺少linux内核头文件
输入命令sudo apt-get install linux-kernel-headers更新下内核头文件及库文件,
这将安装gcc/g++/gdb/make等基本编程工具)如果这个已经安装并提示未更新,
安装一下。
6>Ubuntu下Gtk开发环境的建立
在前面的基础上这里该配置Gtk开发环境了,搜集安装方法:
sudo apt-get install gnome-core-devel
#这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件
sudo apt-get install pkg-config
#用于在编译GTK程序时自动找出头文件及库文件位置
sudo apt-get install devhelp
#这将安装 devhelp GTK文档查看程序
sudo apt-get install libglib2.0-doc libgtk2.0-doc
#这将安装 gtk/glib 的API参考手册及其它帮助文档
sudo apt-get instal glade libglade2-dev
#这将安装基于GTK的界面构造程序。
(经测试这个方法会导致ubuntu系统Gnome桌面异常,未解决)
其实,Ubuntu桌面系统还是不稳定的,Ubuntu那一天我重装了2~3次,还是有些问题解决不了!继续学习中...