g++ 编译 c++ 程序时需要包括 include .h 文件,还是需要 .cpp 文件
最近用Eclipse 下的cdt 学习c++
发现大部分的时候 main.cpp 中只需要包括 .h文件就可以了
cpp 文件在编译的时候用 g++ main.cpp *.cpp *.cpp 指定就可以。
可是今天上午编译一个 自己写的 类模板的代码 stack.h 和 stack.cpp ,main.cpp 中如果只包括 stack.h
就会出现: undefined reference to xxxxxx
的错误,很奇怪。
解决上面的错误只需要把stack.h 替换成stack.cpp就可以了。
这是为什么呢?
幸好参考
这篇文章的时候解决了上面的问题。
ChinaUnix.net - C/C++ 编译器和调试器以及静态库、动态库使用汇总 http://dummy.linux.net.cn/~xgwu/cmuo/basics/cbsource3.htmlhttp://www.linuxsir.com/bbs/showthread.php?s=&threadid=1005<!--StartFragment -->
再来一片makefile然后细细看 VC中的一些常用方法(20条)
分享到:
相关推荐
### C++ 使用 g++ 编译 CPP 工程 #### 一、单个源文件生成可执行程序 在本节中,我们将学习如何使用 `g++` 编译器将一个单独的 C++ 源文件编译为可执行程序。 ##### 示例:hello_world.cpp ```cpp #include ...
2. **头文件(Header Files)**: `#include "tabSheet.h"` 在 `tabSheet.cpp` 文件中,表示`tabSheet.cpp`需要使用`tabSheet.h`中定义的类和函数。头文件的作用是声明类、函数、常量等,确保编译时其他文件能正确...
本文将详细解析标题中的"SerialPort.h"和"SerialPort.cpp"两个文件,它们是用于实现WinSocket编程中串口操作的关键组件。 首先,`SerialPort.h`是一个头文件,通常包含了`SerialPort`类的定义和相关的函数声明。在...
8. **安装OpenCV**: 编译完成后,运行`mingw32-make install`,将编译好的库文件安装到指定的路径,通常是在`install`文件夹下,包括`include`目录下的头文件和`lib`目录下的库文件。 9. **配置项目链接OpenCV**: ...
g++编译命令选项是GCC编译器中专门用于编译C++程序的命令行工具,它能够执行从预处理、编译、汇编到链接的完整编译过程。g++在使用时通常会包含多个选项参数,以满足不同编译场景的需要。 首先,g++在执行编译工作...
4. **手动复制mex.h**:如果以上步骤无法解决问题,可以考虑从其他已安装MATLAB的机器上手动复制mex.h文件至项目的include目录中。 #### 四、实例演示 假设我们有一个简单的C++程序,需要调用MATLAB中的函数来计算...
`regex.cpp` 源文件可能是实现了这些函数的C++代码,通常包括了对`regex.h`中声明的函数的具体实现。在C++环境中,可能会利用C++的类和对象来封装这些C风格的函数,提供更加面向对象的接口,使得使用正则表达式更加...
#include "cpp_interface.h" // 包含C++接口头文件 // 使用C++接口调用函数 int result = callCppFunction(instance, 3, 4); ``` ### 3. 编译和链接 在编译和链接阶段,确保正确地处理了C和C++源文件。通常,C++...
在Linux环境下,使用g++编译C++程序是开发C++项目的基础步骤。g++是GNU Compiler Collection (GCC)的一部分,专门针对C++语言进行了优化,它可以编译、链接并生成可执行文件。以下是关于使用g++编译C++工程的一些...
在C++编程环境中,预编译头文件`stdafx.h`是一个常见的概念,特别是在使用Microsoft Visual Studio等IDE时。这个头文件的主要目的是为了提高编译效率,通过预编译一些经常改变但不常重新编译的代码,从而减少编译...
总的来说,`getopt.h` 和 `getopt.cpp` 提供了一个方便的工具,使得开发者可以轻松地在程序中处理命令行参数,无论是在Linux还是Windows环境中。了解并熟练使用 `getopt` 函数,能够提高你的编程效率,同时使你的...
在C++编程中,`.h` 和 `.cpp` 文件是两个关键类型的文件,它们共同协作以实现程序的逻辑。`.h` 文件通常被称为头文件,主要用于声明类、函数原型、枚举、常量等,而`.cpp` 文件则是实现文件,用于定义在头文件中声明...
`lib`文件是静态链接库,编译时会被链接进应用程序,使得程序可以直接调用库中的函数。而`dll`文件是动态链接库,运行时才会被加载,可以减少程序的体积,但需要与对应的dll文件一起分发。 5. **h文件** `h`文件...
`stdafx.cpp`文件仅包含一行代码`#include "stdafx.h"`,这是预编译头文件(Precompiled Header,PCH)的入口。预编译头文件是一种编译优化技术,通过提前编译常用且不经常改变的头文件,生成`.pch`文件,之后的编译...
在VC++项目中,我们经常需要利用CUDA的强大计算能力来加速程序执行,特别是处理大量数据时。CUDA(Compute Unified Device Architecture)是NVIDIA提供的一种并行计算平台和编程模型,它允许开发者直接利用GPU(图形...
`stdafx.cpp` 文件,也称为预编译头源文件,通常包含`#include "stdafx.h"`语句,它是预编译头文件对应的源文件。在这个文件中,你可以放置那些在整个项目中都会被使用的全局对象、常量和宏定义等。然而,应当注意,...
3. 编译C++程序链接静态库: 当C++程序尝试链接到C静态库时,需要确保链接器能找到相应的库文件。在编译时添加静态库路径(-L)和库名(-l)标志。例如,在Linux下: ```bash g++ main.cpp -o main -L/path/to/...
为了编译一个包含OpenCV的C++程序,我们需要确保正确地链接库和设置编译标志。以下是一个示例编译命令: ```bash g++ test.cpp -std=c++11 -o test `pkg-config opencv --cflags --libs` ``` 这个命令做了以下几件...
在实际项目中,"CvvImage.cpp" 和 "CvvImage.h" 可能会与其他源文件(如测试文件或主程序文件)一起编译链接,形成可执行程序。例如,压缩包中的 "CvvImage" 文件可能是一个已经编译好的动态链接库(.dll 或 .so),...