2012年8月29日星期三

GCC找不到标准库

一个开发的哥们,说在开发机(CentOS)上可以编译成功的C++程序,在线上机器(Ubuntu)上就不行。我发现是链接不了pthread库,而这个库是安装了的。然后另一个和他一起的哥们,来抱怨Ubuntu的动态库路径不标准。

我在自己的Ubuntu桌面上写的多线程的C程序,又编译了一下是没有问题的啊。后来他发现是应该把动态库放到编译命令行的最后。原来是:
g++ $(INCLUDE) $(CPPFLAG) -g $(LLIB) -o $(OBJ) $^
改成下面的就好了:
g++ $(INCLUDE) $(CPPFLAG) -g -o $(OBJ) $^ $(LLIB)
我又回忆起这是一个C的FAQ。我的Makefile里面-lm -pthread是写到最后的,所以没有问题。

没有评论:

发表评论