首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ubuntu环境下使用G++编译CPP文件

第一次用g++编译cpp文件的时候报了undefined reference的错误,自定义类中的函数全部都无法找到,查找资料后发现调用的类是需要链接的,本文以一个小例子描述编译的过程。....o格式的文件 g++ -c class1.cpp g++ -c class2.cpp g++ -c test.cpp 由于class1和class2是被依赖的,需要打包成静态库文件(.a格式)用于链接...g++同时编译多个文件的方法 对于这个例子,文件被放置在/CPPPFrtory目录中。使用CD命令进入包含源文件文件夹。...通过在命令行上列出文件编译程序,类型: 方法一:g++ Hello.cpp Welcome2.cpp -o Welcome2.out -ansi //两个cpp文件编译后只生成一个 .out 文件...方法二:使用“通配符”编译程序,类型:g++ *.cpp -o Welcome2.out -ansi //用*号代替目录下所有要编译文件 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值

1.5K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Cpp程序的编译过程

    ,这是一个由Stallman发起的一个操作系统计划,但是最后各种编译器什么的工具都写好了,核心的内核没有开发成功,但最后Linux填补了这个空白....当gcc编译c程序时 gcc a.c -o a #这样就生成可执行文件a了 当gcc编译c++程序时 gcc a.cpp -lstdc++ #加个-lstdc++链接上c++的库才行....当g++编译c程序时,跟gcc用法是一样的,实际上g++在编译c程序是也是直接调用的gcc 当g++编译cpp程序时,看下面一节....最最常用的命令 无论编译.c还是.cpp,g++都挺方便,一般直接都用g++就可以了....参考 C语言中文网 GCC编译c语言程序完整演示 c语言真正的编译过程 Linux查看二进制文件内容 GCC 欢迎与我分享你的看法。 转载请注明出处:http://taowusheng.cn/

    1K10

    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

    2K20

    Linux 内核】编译 Linux 内核 ⑤ ( 查看 .config 编译配置文件 | 正式编译内核 )

    文章目录 一、查看 .config 编译配置文件 二、正式编译内核 一、查看 .config 编译配置文件 ---- 在上一篇博客 【Linux 内核】编译 Linux 内核 ④ ( 打开 Linux...内核编译 菜单配置 |菜单配置中的光标移动与选中状态 | 保存配置 | 配置项帮助文档 ) 中 , 已经将编译配置保存到了 .config 文件中 ; 查看 .config 编译配置文件 , 在 linux...内核源码根目录中 , 执行 gedit .config 命令 , 查看 .config 编译配置文件 : ( 也可以使用 vi , vim 等文本编辑器查看 ) 在 .config 配置中 , #...代表注释 , CONFIG_IRQ_WORK=y 等号右侧的 y 表示同意该操作 ; .config 文件内容示例 : 配置文件很多 , 这里只贴出一部分 ; # # Automatically generated...---- 在 Linux 内核源码根目录 , 执行 sudo make j4 开始编译 Linux 内核 ;

    12.2K40

    cmake:VS2015和GCC编译cpp_redis

    使用起来很方便,cpp_redis支持CMAKE编译,编译也很简单,本文以脚本形式提供了使用CMAKE基于VS2015/Windows以及GCC/MinGW的编译过程。...环境要求 cmake 这是必须的编译工具 Visual Studio 2015 OR MinGW for windows gcc for linux Visual Studio 2015 编译脚本 msvc_build.bat...要求cpp_redis源码文件夹与msvc_build.bat脚本在同一级文件夹 执行以下脚本会编译cpp_redis 并安装到 release\cpp_redis_windows_vc_mt_x86...如果指定了/MD选项会安装到release\cpp_redis_windows_vc_md_x86_64 文件夹下 如果未指定/S 参数,默认编译的是静态库 :: 基于 Windows Visual...cpp_redis源码文件夹与gnu_build.sh脚本在同一级文件夹 执行以下脚本会编译cpp_redis安装到release/cJSON-$machine 文件夹下 如果未指定环境变量BUILD_TYPE

    1.2K10

    Clion快速查看cpp preprocess 文件

    对于Clion项目,编译时会生成cmake-build-debug目录,里面是cmake编译项目的产物。如下图: image.png 注意,这里最重要的是Makefile文件,里面会有一系列任务。...这里我们最关注的是“main.cpp.i”,其内容如下,作用是生成预处理preprocess文件。...CMakeFiles/cppConcurrencyDemo.dir/main.cpp.i 和Makefile同级,然后执行“make main.cpp.i”,就会生成对应的preprocess文件。...如下图: image.png 这里来看下源文件和预处理后的文件对比: 查如何生成预处理文件是因为,写modern cpp时,想看下using后的会不会被预处理,“gcc -E”在大项目中不实用,所以找下有没有更智能更自动化的方法...可以看到,通过"make main.cpp.s",我们就可以生成对应的汇编文件

    1.8K20

    UE4的UBT编译单个cpp过程梳理

    深入UBT的过程之前一直试用UBT编译,没有好好学习过编译一个cpp发生了什么,UE4是怎么一步步去调用到系统的cl.exe完成一个cpp编译的如何调试UBT设为启动项目图片复制启动参数图片获得NMake...include信息和其他编译日志分离我的理解:生成的includes文件,可以供UBT做进一步的优化使用(未深入)追踪各个步骤的中间产物Defination文件和response文件在windows上...\XXX\Module.XXX.cpp.obj.response找到这个编译参数文件图片这个文件直接决定了后面cl-filter以及cl的编译全部内容ExcuteAction这个构造了对应的cl-filter...整合成一个大的cpp以减小编译时间(减少io次数)这个行为就叫做Unity BuildUE自己也有一些编译参数控制UnityBuild的效果,比如bUseUnityBuild/bForceUnityBuild...UnrealVS插件使用快捷键进行单文件编译

    2.5K10

    交叉编译Linux的头文件路径

    我们交叉编译Linux的时候可能需要添加新的头文件,这个头文件放在哪里。编译应用程序和内核程序不太一样,分别说。...编译应用程序 编译器需要找到头文件有几种办法 编译时-I指定路径搜索 arm-linux-gnueabihf-gcc testtty1.c -o testtty1 -I/linux 上述例子中的头文件存于根目录下的...linux文件中,指定路径。...可以通过命令搜索 echo 'main(){}'|arm-linux-gnueabihf-gcc -E -v - 其中arm-linux-gnueabihf-gcc取决于你自己使用交叉编译工具(需要根据交叉编译工具进行更改.../arm-linux-gnueabihf/libc/usr/include 这是我的交叉编译链默认头文件位置,如果要使用自己的#include 文件,将头文件放入上述位置即可。

    10.3K50

    linux中把.c的文件编译成.so文件

    linux中共享库以so为后缀(shared object),与Windows下的DLL类似,是在程序运行时动态连接。多个进程可以连接同一个共享库。...以下以编译mylib.c为例讲如何编译.so文件。 首先,编译mylib.c: $gcc -c -fPIC -o mylib.o mylib.c -c表示只编译(compile),而不连接。...-o选项用于说明输出(output)文件名。gcc将生成一个目标(object)文件mylib.o。 注意-fPIC选项。PIC指Position Independent Code。...生成共享库: $gcc -shared -o mylib.so mylib.o 库文件以lib开始。共享库文件以.so为后缀。-shared表示生成一个共享库。...总结 以上所述是小编给大家介绍的linux中把.c的文件编译成.so文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持!

    9.6K93

    c++c 获取cpp文件行号跟文件

    编译器内置宏: 先介绍几个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息。...ANSI C标准中有几个标准预定义宏(也是常用的): __LINE__:在源代码中插入当前源代码行号; __FILE__:在源文件中插入当前源文件名; __DATE__:在源文件中插入当前的编译日期 _..._TIME__:在源文件中插入当前编译时间; __STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1; __cplusplus:当编写C++程序时该标识符被定义。...   int main()   {   char file[16];   char func[16];   int line;      sprintf(file,__FILE__); //文件

    1.8K70

    Linux下将源文件编译成目标文件的过程解析

    简介 请讲一下linux如何源文件逐步编译成可执行文件。 解答 首先先上图对编译的整个过程有个感性的认识,然后再逐步分析各个过程。...主要是处理源文件中以“#”开头的预编译指令。...删除#define并展开宏 处理所有条件预编译指令,如#if, #ifdef, #endif 插入头文件到“#include”处 删除所有注释 添加行号和文件名标识,以便编译编译器产生调试用的行号信息...编译阶段。将预处理得到的预处理文件进行语法分析,词法分析,语义分析,优化后,生成汇编代码文件(汇编语言源程序)。 汇编阶段。...将多个可重定位的目标文件.o合并以生成可执行文件,其可以被加载到内存中,由系统执行。 总结 以上就是本文关于Linux下将源文件编译成目标文件的过程解析的全部内容,希望对大家有所帮助。

    1.8K21

    Linux-find 和 exec来批处理指定目录下所有头文件Cpp文件去掉注释行(23)

    比如,我们只想处理login文件夹里的*.cpp和*.h(其它文件不动) 比如login/1.h如下所示: 比如login/1.cpp如下所示: 1.首先复制login文件夹到output下 mkdir...output cp login/ output/login -rf 2.然后删除output/login下的*.cpp和*.h(这样保留下的就是非CPP和头文件了) find output/login...) vi output/login/1.h: vi output/login/1.cpp: Linux命令 find 和 exec作用 find命令的一个选项,如下所示: (1)在当前目录下(包含子目录...),查找所有txt文件并找出含有字符串"bin"的行 find ./ -name "*.txt" -exec grep "bin" {} \;  (2)在当前目录下(包含子目录),查找10天前的log文文件...在当前目录下(包含子目录),删除10天前的log文文 find ./ -name ".log" -mtime +10 -exec rm {} \;      (4)在当前目录下(包含子目录),删除所有txt文件

    1.6K30
    领券