`
ihuashao
  • 浏览: 4514832 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

g++ 编译 c++ 程序时需要包括 include .h 文件,还是需要 .cpp 文件

阅读更多
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.html
http://www.linuxsir.com/bbs/showthread.php?s=&threadid=1005

<!--StartFragment -->再来一片makefile然后细细看

VC中的一些常用方法(20条)
分享到:
评论

相关推荐

    linux下使用g++编译cpp工程的方法

    下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: /* helloworld.cpp */ #include int main(int argc,char *argv[]) { std::cout &lt;&lt; "hello, world" &lt;&lt; std::endl; return(0); }...

    Linux环境使用g++编译C++方法总结

    下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: /* helloworld.cpp */ #include int main(int argc,char *argv[]) { std::cout &lt;&lt; hello, world &lt;&lt; std::endl; return(0); } ...

    StdAfx.h头文件下载,编程必备!

    预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pch。 编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在...

    c++中的.hpp文件

    hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该cpp文件即可,无需再 将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再...

    终于搞懂了,预编译头文件

    以 &lt;br&gt;下是注意事项: &lt;br&gt;1):如果使用了/Yu,就是说使用了预编译,我们在每个.cpp文件的最开头,我强调一遍 &lt;br&gt;是最开头,包含 你指定产生pch文件的.h文件(默认是stdafx.h)不然就会有问题。...

    基于Linux的C++ 教程合集, 包括C++基础, C++服务器, C++专题.rar

    所有必需的开发环境搭建以及工具选择安装好之后,这里通过一个完整的实际程序例子来演示一下Linux系统下C++程序开发的整个过程,让初学者对于Linux下C++应用开发有一个初步的印象。 打开UE编辑器,单击软件界面上...

    纯C++方式生成复杂格式的excel文件(linux下可运行)

    generate_excel.vcproj为在vs2005下的工程文件,如果需要在vc6或Linux等其他编译环境下使用只需新建工程将.h文件和.cpp文件导入即可编译。 generate_excel |------include | |----gen_excel_file.h | |----input_...

    【C++】多文件程序结构.pdf

    【C++】多⽂件程序结构 以前写⼀个C++多⽂件程序的时候经常为哪些东西应该放在.h⽂件⾥,哪些东西应该放在.cpp⽂件⾥⽽疑惑。稍有不慎就搞出⼀ 个"error:LNK2005 已经在*.obj中定义"的重复定义错误,就算解决了这个...

    C++实验报告(4).doc

    实验中的难点 已建立两个C++源程序时,已运行第一个,完成了编译、链接和运行,再运行第二个 时,对第二个进行编译和链接,发现运行的还是第一个程序。为此我疑惑不已,后来通 过问老师,才知道必须将第一个程序的...

    此项目是一个为无人机提供模拟环境的训练场. 你可以设置一个环境, 并编写你的算法来控制其中的无人机.

    g++ -std=c++17 -c simDroneGym/src/simdronegym.cpp -o build/libsimDroneGym.o ar rvs build/libsimDroneGym.a build/libsimDroneGym.o 之后, 将 simDroneGym/include/ 文件夹复制到你的项目中, 并引用其中的...

    万能makefile写法详解,一步一步写一个实用的makefile

    使得当前目录下有多个.c文件时,make会依次对每个.c文件执行这段规则,生成对应的.d: gcc -MM $&lt; &gt; $@.temp; sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' $@.temp &gt; $@; (八) 现在来看上面2行的执行流程: 第一次...

    MingW VC 之.a .lib .dll .def 关系

    另外, 在使用dll里的函数的时候,需要一份.h文件,对调用的函数进行声明。这里的函数名里没有那些附加的前后缀的,这点要注意。 在VC中生成dll和lib(调用dll库) cl /LD mylib.cpp (得到mylib.dll和mylib.lib) ...

    c++ windows贪吃蛇源码

    #include "stdafx.h" #include &lt;stdio.h&gt; #include #include //地图行数和列数 const int ROWS = 20,COLS = 20; //全局变量亲 HINSTANCE w_hInst; HDC w_hdc,w_mdc,w_bufdc; HBITMAP w_bg,w_head,w_body,w_...

    C++程序设计(谭浩强)例题和习题答案

    例如,如果程序c10-4-1.cpp在Visual C++ 6.0环境下编译,第1行应改为“include &lt;iostream.h&gt;”,并将第2行“using namespace std;”取消即可顺利通过编译,其他类似。我们在教材的例题程序中还提供了能在Visual C++ ...

    C++程序设计习题答案谭浩强

    例如,如果程序c10-4-1.cpp在Visual C++ 6.0环境下编译,第1行应改为“include &lt;iostream.h&gt;”,并将第2行“using namespace std;”取消即可顺利通过编译,其他类似。我们在教材的例题程序中还提供了能在Visual C++ ...

    openCV4.5.5 Linux下编译好的文件 解压直接可以使用 C++

    openCV4.5.5 Linux下编译好的文件 解压直接可以使用 C++ 2022.04 版本较新 Ubuntu 21.04 64Bit下编译且使用正常 Cmakelists.txt 使用: ########## OpenCV set(OpenCV_DIR /home/april/install/openCV4.5.5/lib/...

    Linux中gdb查看core堆栈信息

    以 下是注意事项: 1):如果使用了/Yu,就是说使用了预编译,我们在每个.cpp文件的最开头,我强调一遍 是最开头,包含 你指定产生pch文件的.h文件(默认是stdafx.h)不然就会有问题。如 果你没有包含这个文件,就告诉...

    基于socket和opencv在linux中实现摄像头实时数据传送

    -I/usr/local/include -L/usr/local/lib -lopencv_core -lopencv_video -lopencv_highgui -lopencv_imgproc 客户端: g++ simple_client_main.cpp ClientSocket.cpp Socket.cpp -o client -I ~/work/experiment/c++/...

    example3_unicode_可以显示泰文字符.cpp

    该文档在安装了freetype2.7库以后,还要下载泰文字库,用编译命令 g++ -std=c++11 example3_unicode.cpp -o xinexample -I /usr/lius/freetype/include/freetype2 -lfreetype -lm 编译后,./xinexample ./...

    C++多文件结构及预处理命令

     类的声明文件(*.h文件)  类的实现文件(*.cpp文件)  主函数文件(使用到类的文件)  打个比方,建立一个工程,有Clock.h、Clock.cpp、main.cpp  在编译的时候,由Clock.h和Clock.cpp编译生成Clock.obj...

Global site tag (gtag.js) - Google Analytics