在函数“_start”中:(.text+0x20):对“main”collect2的未定义引用:ld返回1退出状态

par*_*tel 2 c++ g++

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

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

非常感谢您的帮助。

谢谢

jua*_*nza 5

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

# shared library
g++ -shared -o name.so obj1.o obj2.o obj3.o
Run Code Online (Sandbox Code Playgroud)

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

ar <options> mylib.a obj1.o obj2.o obj3.o
Run Code Online (Sandbox Code Playgroud)

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

g++ -c ....
Run Code Online (Sandbox Code Playgroud)

否则,g++尝试编译可执行文件,这需要一个mainfunction