Chinaunix

标题: g++生成动态链接库出错 [打印本页]

作者: _skytrails    时间: 2015-09-14 23:54
标题: g++生成动态链接库出错
我有一个deamon.cpp文件,用命令g++ -c deamon.cpp -o deamon.o编译成deamon.o目标文件,再想把它生成一个动态链接库.so文件。执行如下命令
  1. g++ -shared -fPCI -o libmyhell.so deamon.o
复制代码
结果给我报了这么一个错,请各位大神指点……
搞不清楚哪里出错了:
  1. skytrails@debian:~/back_trunk/objs/deamon$ g++ -shared -fPIC -o libmyhell.so deamon.o
  2. /usr/bin/ld:deamon.o: file format not recognized; treating as linker script
  3. /usr/bin/ld:deamon.o:1: syntax error
  4. collect2: error: ld returned 1 exit status
复制代码

作者: drangon    时间: 2015-09-15 00:10
本帖最后由 drangon 于 2015-09-15 00:11 编辑

file  deamon.o 看看结果,看看是否obj文件(ELF object)

另外编译deamon.o也需要加 -fPIC 参数
作者: _skytrails    时间: 2015-09-15 21:58
drangon 发表于 2015-09-15 00:10
file  deamon.o 看看结果,看看是否obj文件(ELF object)

另外编译deamon.o也需要加 -fPIC 参数
执行了下,file deamon.o ,文件类型为ascii text,这是什么 情况?怎么破?
作者: _skytrails    时间: 2015-09-15 22:19
重新执行了下,发现是因为g++增加了-MM选项,导致生成了ascii text文件,去掉之后就可以了。但我想要这个选项,要怎样才能既使用了-MM又生成obj文件?
作者: windoze    时间: 2015-09-15 22:37
回复 4# _skytrails

跑两遍不就好了,一遍-MM,一遍-c……
作者: _skytrails    时间: 2015-09-15 22:50
windoze 发表于 2015-09-15 22:37
回复 4# _skytrails

跑两遍不就好了,一遍-MM,一遍-c……
貌似-MM是用来生成[d]文件的
作者: windoze    时间: 2015-09-15 23:02
回复 6# _skytrails


对啊,-MM生成dep,-c是编译,这两个开关不能同时用




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2