游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3505|回复: 5

从Windows到Linux(服务器篇)

[复制链接]

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-9-29 16:27:00 | 显示全部楼层 |阅读模式
首先,得有一台Linux机器,不管是用VMWare或者Virtual Machine虚拟的,还是另外一台服务器。Linux安装的时候得装上开发包(Development Package),如果没有的话,可以先下一份gcc 2.3的rpm,然后自己编译gcc 3.2,不过比较麻烦,不推荐初次接触Linux的用户使用。

然后在Linux机器上装一个samba server,一般默认的安装里面有的,如果没有在启动里面的话,可以通过手动输入smbd -D来启动samba server。然后cat /etc/passwd | mksmbpasswd > /etc/samba/smbpasswd
或者用smbpasswd <id>来修改某个用户访问samba的密码。

设置好用户以后,在Windows下我的电脑->工具->映射网络驱动器,在这里输入Linux机器的IP地址,连接成功后在我的电脑里面会出现一个新的盘符,然后可以用VC等编辑器在新的盘符里面创建工程,开始写程序,写完之后,切换到Linux下自己写Makefile来编译工程,如果两边都编译通过的话,说明代码基本上满足跨平台的需求了。如果在Linux下调试的话,可以用gdb,并且在gcc编译的时候记得加-g开关。

这样做的好处是,可以很方便的用Linux下的shell来管理工程,也可以用比较熟悉的编辑器,比如VC来编写程序,同样也可以用VC先在WINDOWS下编译,整个过程中不需要额外的将代码传到Linux下。弊端则是项目管理的时候会造成一些混乱,记得在一个平台下check in,要在同一个平台下check out就好了。

Linux下的静态连接库是.a结尾的,动态连接库是.so结尾的,通过ar -rc xxx.a xx.o xxx.o xxxx.o xxxxx.o 来生成静态库,并用gcc -g -o -L<ur lib directory> <execute file name> xxx.o xxxxx.o xxxxxxx.o -l<lib1 name> -l<lib2 name>来进行连接,当然,也可以用ld来链接,只不过ld的使用方法比较麻烦,如果刚刚接触Linux的话,可以用我上面说的方法。

如果要编译.so动态链接库的话,则用:
gcc -fPIC -c <source file name>
gcc -shared -o xxxx.so xxxxxx.o
来生成动态链接库。

下面简单讲一下gdb的一些基本用法,首先输入gdb <execute file name>然后回车,这个时候gdb就已经装入你的可执行文件了,然后你可以用b <function name>来设置一个断点,比如我有一个函数叫void foo(),就直接输入b foo回车,设置完所有的断点之后,输入r <执行参数>来调试程序,如果没有参数的话,就直接输入r,然后会在你设置的断点的函数停下来,这个时候可以用p <variable name>来看一个变量的值,用n执行下一句,如果碰上segmentation fault,也就是windows下的非法操作,可以输入backtrace来查看最后呼叫的函数堆栈,q是退出,如果没有反映的话,就是你的程序还没有执行到你的断点,这个时候你可以用ctrl + c来向你的进程发一个signal int,熟练掌握了以上关于gdb的基本操作后,基本上可以解决调试时的大部分问题。

附 linux 下常用调试用shell列表:
ps -e 列出所有在运行中的进程
killall <process name> 向一个进程发kill signal,一般情况下就是杀死这个进程
top 显示当前系统资源,ctrl + c退出
strace <process name> 监视某个进程执行系统调用的情况,一般可以通过这个分析出服务器高负载情况下的瓶颈
netstat 基本上和windows下netstat功能一样

0

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2004-9-29 20:01:00 | 显示全部楼层

Re:从Windows到Linux(服务器篇)

不知道你是用VSS还是用CVS来做源代码管理,我个人觉得既然用VC作IDE的话,可能用VSS更方便点,或许你两种都用?

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
 楼主| 发表于 2004-9-30 04:26:00 | 显示全部楼层

Re:从Windows到Linux(服务器篇)

cvs

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2004-9-30 09:13:00 | 显示全部楼层

把etc里面的东东多看看.

rt

18

主题

631

帖子

660

积分

高级会员

Rank: 4

积分
660
发表于 2004-9-30 10:19:00 | 显示全部楼层

Re:从Windows到Linux(服务器篇)

不错。

0

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2004-10-8 02:39:00 | 显示全部楼层

Re:从Windows到Linux(服务器篇)

写的好
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-22 15:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表