使用g++在不同文件夹中使用.o文件创建可执行文件时出现问题
problems creating an executable file with .o files in different folders using g++
我在的不同位置有两个c++文件
- hello.cc在/home/testing/src/inpl/hello.cc中
- 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
为了使主文件可执行,您必须包含所有需要的对象文件及其正确的路径。否则将导致链接器错误
相关文章:
- 从 PHP 调用已编译的C++可执行文件来创建套接字
- Pyinstaller创建的可执行文件找不到Meipass目录中存在的DLL
- 我有一个预处理的 C/C++ 源文件 (cacti.i).如何从这个 .i 文件生成可执行二进制文件,以便我可以像 ./
- 应使用 CMake install 命令将可执行资源文件安装到何处?
- 为什么当我们想要运行可执行的 c++ 文件时,我们需要在可执行的 c++ 文件前面"./"?
- 配置:错误:C++编译器无法创建可执行文件
- 如何告诉 clang 将调试符号放入可执行二进制文件中
- catkin_make无法创建可执行文件,并自动将标题文件复制到DEVEL
- 如何转换一个普通的makefile以创建可以在另一台计算机上使用的静态可执行文件
- 在Eclipse(Ubuntu)创建C Makefile项目时,如何生成.bin(可执行文件)
- 可执行文件无法在双击执行时创建新文件
- 程序如何创建另一个可执行文件
- 使用可执行应用程序创建和"Scheduling" pthreads
- 创建不需要任何进一步安装即可在其他计算机上工作的可执行文件?
- 从 Web UI 访问C++编译的可执行二进制文件
- 使C可执行/设置文件在任何计算机上运行
- 不是可执行格式:文件格式无法识别 GDB
- 如何制作不依赖于 .so 文件的可执行二进制文件
- 可执行测试文件没有运行测试
- 系统()调用批处理可执行流文件使程序在windows上重置