为了更好的使用FastDFS(以下简称“DFS”),我们需要对DFS进行一些小范围的DIY。和DFS的作者聊了一下,发现DFS是执行make。sh文件来产生makefile,然后调用make编译执行的,这样的话,在eclipse中就给一些需要改动的朋友带来了困惑,我花了一个晚上的时间,终于让dfs在eclipse的环境中编译成功了。
我的环境如下,ub9.04的版本,升级了中文语言包和jdk1.6;eclipse是最新从eclipse。org站点上down的cdt版本。现在开始配置:
1.配置java环境,启动eclipse这些自己网上g一下,一g一大堆;
2.新建一个项目名称,最好“选择hello world的可执行项目”类型(别的我没试过);
3.将dfs的所有文件copy进去;
4.配置编译器,这里需要注意,因为dfs生成是通过make.sh做的,所以我们需要更改项目默认的编译方式,调整为执行make.sh。首先,右击项目,选择属性,然后设置,如图,需要更改builder command部分:
5.库应用路径因为cdt默认的包括了一部分,但是项目之间的应用需要自己添加。(不知道不加会不会有事情,因为编译是通过make.sh来的,不够cdt的make,不引用不知道会不会出错,没试过,有兴趣的朋友可以试试。)如图(右上角第一个绿色的按钮就是加引用路径的):
6.调整你的make.sh。为什么要调整呢?因为你编译的时候,你的当前工作目录不是在dfs的根目录,就是make.sh文件所在的目录,而make.sh中加入了很多的相对路径应用,所以你要在dfs编译寻找别的文件前定位到make.sh所在的目录,否则无法通过编译。因为你执行的是一个sh文件,所以你就可以在进入sh文件后的第一件事情就做转换工作目录,在make.sh文件头加上一句话即可:
“cd make.sh文件所在的物理路径”
如果你还不放心的话,后面还可以加上一句pwd,就是把当前的工作目录打印出来,这样你就可以在控制台上看到了,具体如图:
前面是我的make.sh更改后的效果,选中的部分是自己加上去的,下面的是我第二次编译时候的控制台反馈,第一,第二行一个是当前执行的编译命令,一个是“pwd”命令显示的文本。
这样,dfs的源码就可以在cdt中编译了。但是这个方法只限于在linux中。在window中,需要安装cygwin,但是本人没试过,下回试出来了再和大家分享。
总结上面发生的一切,路径的正确以否直接影响了程序的编译。大家以后在linux平台上要多注意路径的问题。特别是一些绝对路径和相对路径混用的地方要格外小心才是。