概述
环境:Windows 10 、Code::Blocks
命令示例:gcc main.cpp -lstdc++ -o main
说明一:
转载内容(应为Linux?):gcc可以编译c++文件,也可以编译c文件,但默认是编译c文件的,加-lstdc++表示编译c++文件,即链接c++库,加-lc表示链接c库,默认情况下就是链接c库,所以如果编译c文件可以不加-lc。
本人测试结论(win10):gcc可以编译c++文件,也可以编译c文件,但默认编译c文件。加-lstdc++表示编译c++文件,即链接c++库,加-lgcc表示链接c库,默认情况下就是链接c库,所以如果编译c文件可以不加-lgcc。
说明二:
转载内容(应为Linux?):-l 后面加的是动态库libstdc++。-l加的时候,把"lib"三个字符省略,例如链接libtest.so你就需要加 -ltest ,一般这个库在usr/lib下可以找到
本人测试结论(win10):-lstdc++ 表示链接的是libstdc++库。-l加的时候,把 前缀lib 和 后缀拓展名 省略,例如链接 libgcc.a你就需要加 -lgcc 。请自行研究下图(CodeBlocks文件夹及其子文件夹下并无 .so 文件):
命令实测
前提:把 {parent_dir}MinGWbin(比如D:AnZhuangLuJingCodeBlocksMinGWbin)添加到PATH变量!
1、使用 gcc 命令:
1.1 编译 .c 文件:
(未指定要链接的库,gcc就会默认使用c库)
或者:
(显示指定链接c库,与上面效果一样)
或者:
(链接的是c++库,但c.c也能编译成功)
1.2 编译 .cpp 文件:
(用gcc编译 .cpp 必须指定库,而且必须为c++库!)
使用 gcc cpp.cpp -o cpp 会报错(和下面是一样的):
使用 gcc cpp.cpp -lgcc -o cpp 会报错:
2、使用g++命令:
2.1 编译 .c 文件:
2.2 编译 .cpp 文件:
总结:只记报错的情况:gcc cpp.cpp [-lgcc](可有可无,该项为gcc的缺省值)。其他情况都是OK的。
说明1:我的 .c 和 .cpp 文件放在桌面,因此在命令行中我要把当前路径切换为:
即:文件在哪,命令行的当前路径就应在哪。
说明2:-o main(可以无空格: -omain ,诸如 -x 这样的都有此性质)含义:用于指定输出的可执行文件(.exe)的名字,若省略 -o main ,则默认在当前路径下生成 a.exe 。
-o output-file-name
最后
以上就是喜悦蜡烛为你收集整理的# -lstdc++ #命令行编译C、C++@FDDLC的全部内容,希望文章能够帮你解决# -lstdc++ #命令行编译C、C++@FDDLC所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复