函数`_start':(。text + 0x20):未定义引用`main'colle2:ld返回1退出状态

时间:2013-05-14 21:08:15

标签: c++ g++

我是g ++的新手,并在LINUX中编译我的C ++代码。 我正在尝试使用g ++将几个.o文件连接为.lib。

这是我使用“g ++ -o ../fuzzy/fuzzy.lib example1.o example2.o”的命令,并收到此错误。即使我尝试连接单个目标文件并生成.lib,它也不起作用。

非常感谢您的帮助。

由于

2 个答案:

答案 0 :(得分:4)

如果您尝试构建库,则选项取决于您是要构建静态库还是共享库。例如,

# shared library
g++ -shared -o name.so obj1.o obj2.o obj3.o

静态库本质上是一个存档,您可以使用.o命令从ar文件构建存档。

ar <options> mylib.a obj1.o obj2.o obj3.o

如果您要编译目标文件,则需要传递-c选项:

g++ -c ....

否则,g++会尝试编译可执行文件,这需要main function

答案 1 :(得分:4)

要制作静态库,请使用ar

ar rcs mylibrary.a a.o b.o c.o

要制作共享库,请使用gcc链接:

gcc -o mylibrary.so -shared a.o b.o. c.o