使用g++在不同文件夹中使用.o文件创建可执行文件时出现问题

problems creating an executable file with .o files in different folders using g++

本文关键字:可执行文件 文件创建 问题 g++ 文件夹 使用      更新时间:2023-10-16

我在的不同位置有两个c++文件

  1. hello.cc在/home/testing/src/inpl/hello.cc中
  2. messages.cc位于/home/testing/src/msg/messagess.cc

在hello.cc中,我们有一个消息的include.h

因此,我成功地使用以下命令编译了hello.ccg++-c-I/home/testing/src/msg-hello.cc(这在/home/testing/src/inpl/中生成了一个hello.o文件)

现在,我使用命令编译messages.cg++-c messages.cc(这在/home/testing/src/msg/中生成了一个messages.o文件)

现在我想要的是使用hello.o制作和执行文件

使用以下命令

g++-o你好你好。o

这是我得到的错误

未定义的第一个引用文件中的符号留言你好。old:致命:符号引用错误。没有向hello写入输出collect2:ld返回1退出状态

请帮我解决这个问题

您需要加载所有对象文件:

g++ -o hello hello.o path/to/messages.o

因为链接器没有知道在哪里找到符号的自动方式。

命令应该是

g++ hello.o message.o -o hello  // give the proper paths

为了使主文件可执行,您必须包含所有需要的对象文件及其正确的路径。否则将导致链接器错误