我是g ++的新手,并在LINUX中编译我的C ++代码。 我正在尝试使用g ++将几个.o文件连接为.lib。
这是我使用“g ++ -o ../fuzzy/fuzzy.lib example1.o example2.o”的命令,并收到此错误。即使我尝试连接单个目标文件并生成.lib,它也不起作用。
非常感谢您的帮助。
由于
答案 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