一、问题引入
在使用VSCode编写C++程序过程中,自定义一个 *.h 文件,其中包含了函数声明,在主函数中引入头文件后,调用头文件对应C++文件中的方法,出现了undefined reference问题
二、解决过程
分析问题:主要是 预处理时,编译器没有找到stock.cpp的位置,导致 undefined reference问题
直接通过g++命令行:g++ -g .\stock_operate.cpp ..\inc\stock.cpp -o stock_operate
三、反思总结
涉及到gcc/g++的命令行编译,应该熟悉编译的参数功能,才能合理修改Visual Studio Code中的编译参数。
以下是一些常用的g++编译器参数及其功能:
-o
: 指定输出文件名。例如,g++ test.cpp -o myprog
将编译test.cpp并将可执行文件命名为myprog。-c
: 编译源代码但不执行链接操作,生成目标文件(.o文件)。-Wall
: 开启所有警告信息。-O
: 启用优化选项。有多个级别的优化可以选择,例如-O1表示启用较基本的优化级别,而-O3则表示使用更高级别的优化。-g
: 生成调试信息。这可以帮助开发人员在代码出现问题时进行调试。-std=c++XX
: 指定C++语言的版本。例如,-std=c++11
指定使用C++11标准。-I
: 添加头文件搜索路径。例如,-I /usr/local/include
表示在/usr/local/include目录中查找头文件。-L
: 添加库文件搜索路径。例如,-L /usr/local/lib
表示在/usr/local/lib目录中查找库文件。-l
: 链接外部库文件。例如,-lboost_system
表示链接名为libboost_system.a或者libboost_system.so(取决于系统)的库文件。
除此之外,g++还提供了很多其他的编译器参数,可以通过输入man g++
查看完整的帮助文档。
四、参考引用
VSCode编写C++自定义头文件undefined reference异常问题
标签:文件,头文件,++,C++,编译,cpp From: https://www.cnblogs.com/caojun97/p/17306608.html