linux 编译c++ 怎么编译

【VSCode】Ubuntu下VSC编译运行c++程序
之前在Ubuntu下写一些C++程序,一直找不到一个优(hao)雅(kan)的IDE,所以都是使用vim或Clion来写。今天发现微软的一款编辑器,界面好看,功能也挺好用的。
以下是我的一些安装和配置方法:
1、官网下载地址:/ ,由于我的是Ubuntu,故直接下载.deb包就安装了。
2、进去之后注意左下角的图标,是添加扩展
3、安装编译和调试的插件(点击插件 - 安装扩展)
输入:ext install cpptools 和 ext install webfreak.debug
(插件描述:
/items?itemName=ms-vscode.cpptools
/items?itemName=webfreak.debug
4、编译调试需要在文件夹内进行(因为这两个步骤要配置一些信息),于是要在tab栏中选择&打开文件夹&,如果仅仅打开文件,并不能编译调试。
5、剩下的步骤可以参考vscode配置C/C++的编译调试环境(http://jacean.github.io//vscode%E9%85%8D%E7%BD%AEC-C-%E7%9A%84%E7%BC%96%E8%AF%91%E8%B0%83%E8%AF%95%E7%8E%AF%E5%A2%83/)
以下是我的配置。
在打开文件夹之后,随便写一个测试文件,然后按F5(编译并调试),然后提示&选择环境&,选择C++(GDB),然后会弹出launch.json,这是调试运行的配置文件。将原来的内容替换为:
&version&: &0.2.0&,
&configurations&: [
&name&: &Debug&,
&type&: &gdb&,
&request&: &launch&,
&target&: &${file}.o&,
&cwd&: &${workspaceRoot}&,
&preLaunchTask&: &g++&  // c的话则是gcc
保存后,Ctrl+Shift+P,输入&配置任务运行程序&,回车,弹出一个tasks.json文件,替换为如下:
&version&: &0.1.0&,
&command&: &g++&,&&& // gcc
&args&: [&-g&, &${file}&, &-o&, &${file}.o&],
&problemMatcher&: {
&owner&: &cpp&,
&fileLocation&: [&relative&, &${workspaceRoot}&],
&pattern&: {
&regexp&: &^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$&,
&file&: 1,
&line&: 2,
&column&: 3,
&severity&: 4,
&message&: 5
保存,在对应的c或c++文件中按F5就可以编译运行:
本文永久更新地址:
------分隔线----------------------------<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&主题 : 移植linux 的c++库,怎么修改makefile 才能编译出支持ios的.a静态库
级别: 新手上路
可可豆: 37 CB
威望: 37 点
在线时间: 6(时)
发自: Web Page
移植linux 的c++库,怎么修改makefile 才能编译出支持ios的.a静态库&&&
技术问题发到问答:我知道,我仍旧要在论坛继续发布问题
我们 项目 在linux有 个库,现在要 移植到ios,原项目拷贝到 mac os 上在终端 编译 makefile可以生成.a 但是在xcode项目中引用提示:Undefined symbols for architecture armv7:&#160;&#160;\&_xxx_net_init\&, referenced from应该是前面的 警告更准确定位到原因是 它判断出这个.a库不是 armv7架构的:ld: warning: ignoring file /xxxnet/libxxx.a, file was built for archive which is not the architecture being linked (armv7): /xxxnet/libxxx.a请问怎么修改makefile 才能编译出支持ios(armv7/armv7s)的.a静态库?附注:我们移植到android的NDK调用启动交叉编译需要android形式的 makefile文件,不知道ios怎么改写这个makefile?我想这个是常规需求,请高手帮忙解答,最好有示例。万分感谢!
级别: 新手上路
可可豆: 37 CB
威望: 37 点
在线时间: 6(时)
发自: Web Page
我自己来回答吧,这里实在太差了。不是这里的关系,跟VC和linux等比起来,大部分apple的开发环境也是这么差劲。指定编译环境是arm7的方法是:1。在makefile里面添加编译参数,2.并指定编译gcc是xcode的那个路径,具体makefile中的代码:#ios 编译环境增加配置 ,可以自行再修改 sdk版本路径或者添加架构类型(arm i386直接使用普通gcc路径则可)# 可以在终端执行mingling lipo -info xxx.a 来查看生成静态库基于的架构 x86_64/i386/armv7/armv7s/armIOS_GCC_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/binIOS_SDK_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdkIOS_ARCHI_TYPE = -arch armv7 IOS_BUILD_FLIG = $(IOS_ARCHI_TYPE)&&-isysroot $(IOS_SDK_PATH)在你的编译参数中 增加 以上配置参数 $(IOS_BUILD_FLIG),如:CPPFLAGS&&&& := $(IOS_BUILD_FLIG) -s -g -Wall ....#定义编译程序工具命令变量,其实也可以直接填写CXX&&&&&&&&&&&&:= $(IOS_GCC_PATH)/g++CC&&&&&&&&&&&&:= $(IOS_GCC_PATH)/gccAR&&&&&&&&&&&&:= $(IOS_GCC_PATH)/ar写出来,是给后面其他朋友,看到,才接触apple一个月,老乔吹嘘的太厉害了,品牌营销太好了,绝大多数用户是无知和虚荣的,也罢。10年开发,比较各种平台和环境,我瞬间就可以 判断,苹果他的确还是个垃圾,方方面面
级别: 侠客
可可豆: 176 CB
威望: 129 点
在线时间: 55(时)
发自: Web Page
大神,感谢你为后人栽树。可惜偶没撑到凉,还是不会配置~头疼
级别: 侠客
可可豆: 176 CB
威望: 129 点
在线时间: 55(时)
发自: Web Page
大哥,os7 的sdk里没有gcc了。咋个编译啊~
级别: 新手上路
UID: 306616
可可豆: 146 CB
威望: 105 点
在线时间: 828(时)
发自: Web Page
回 3楼(at9009) 的帖子
大哥,你的配置好了么?我们现在也有这样的需求,求指点啊
级别: 新手上路
UID: 306616
可可豆: 146 CB
威望: 105 点
在线时间: 828(时)
发自: Web Page
按照楼主的方法,一直报错,/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/usr/include/sys/cdefs.h:655:2: error: &&&&&&Unsupported architecture#error Unsupported architecture希望楼主知道一下
级别: 骑士
可可豆: 1476 CB
威望: 1476 点
在线时间: 562(时)
发自: Web Page
不会makefile的同学完全可以抛弃makefile,在xcode新建个静态库工程,把要编译的文件添加到工程里,直接用xcode编译即可,配神马参数的完全不需要自己动手
级别: 新手上路
UID: 307357
可可豆: 84 CB
威望: 83 点
在线时间: 266(时)
发自: Web Page
也遇到了这样的问题,试试看上面的说法
级别: 侠客
UID: 260553
可可豆: 321 CB
威望: 281 点
在线时间: 78(时)
发自: Web Page
好样的,最近也是遇到这问题,此贴必顶
级别: 新手上路
可可豆: 1 CB
威望: 1 点
在线时间: 15(时)
发自: Web Page
回 1楼(maxlover2000) 的帖子
您是说什么垃圾呢?苹果手机?开发环境?其实我觉得您可以再开发几年再说
关注本帖(如果有新回复会站内信通知您)
4*5+2 正确答案:22
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版您所在的位置: &
在LINUX C++中运行第一个程序(1)
在LINUX C++中运行第一个程序(1)
刘晖/林欣/李强
清华大学出版社
《开源商业化三维游戏引擎大揭秘》第2章游戏引擎的开发环境,本章在介绍有关内容时,重点聚焦在Panda3D游戏引擎,与环境配置、基本编程语法、数据结构等相关的内容尽量不过多说明,因为随着Windows、Linux版本的不同,有些具体操作会有所不同,但由于游戏引擎不依赖于操作系统,最终起作用的因素保持一致,另一方面,游戏开发并不适合初学者。本节为大家介绍在LINUX C++中运行第一个程序。
2.4& 在LINUX C++中运行第一个程序(1)
现代游戏往往不只采用一种语言开发,尤其需要使用脚本语言实现动态交互,以便向用户开放更多的游戏资源。因此,即便开发者青睐于C++,也应该掌握上一节的有关内容。下来专门介绍使用Eclipse Helios等开发C++语言版本的"你好,大熊猫"。
首先需要通过简单的测试确保能够通过C++程序调用Panda3D引擎。在mytest.cxx中编写保存以下代码:#include&"pandaFramework.h" &#include&"pandaSystem.h" &&PandaFramework& &&int&main(int&argc,&char&*argv[])&{ &//打开一个新窗口框架 &framework.open_framework(argc,&argv); &//设置窗口标题 &framework.set_window_title("Test&Panda3D&Game&Engine"); &//打开窗口 &WindowFramework&*window&=&framework.open_window(); &&//其他代码 &&//程序主循环,与Python脚本中的run()等价 &framework.main_loop(); &//关闭窗口及框架 &framework.close_all_windows(); &framework.close_framework(); &return&(0); &} &
有关源代码位于配书光盘中Ch2目录的CXX子目录。
接着,依次在mytest.cxx所在的Linux系统目录下输入编译及连接命令:g++&-c&mytest.cxx&-o&mytest.o&-fPIC&-O2&-I/usr/include/python2.6/&-I/usr/include/panda3d/ &g++&mytest.o&-o&mytest&-fPIC&-L/usr/lib/&-L/usr/lib/panda3d&-lp3framework&-lpanda&-lpandafx&-lpandaexpress&-lp3dtoolconfig&-lp3dtool&-lp3pystub&-lp3direct &
第一个命令生成mytest.o,第二个命令生成mytest可执行文件,运行结果见图2.8。
图2.8& 在LINUX中测试通过C++调用PANDA3D引擎采用GNU g++编译C++源文件、连接目标文件(.o)及库时,一般命令格式为:#编译 &g++&-c&filename.cxx&-o&filename.o&-fPIC&-O2&-I{pythoninclude}&-I{panda3dinclude} &&#连接 &g++&filename.o&-o&filename&-fPIC&-L{panda3dlibs}&-lp3framework&-lpanda&-lpandafx&-lpandaexpress&-lp3dtoolconfig&-lp3dtool&-lp3pystub&-lp3direct &
上述命令中,有关参数所对应的路径及库文件如表2.3所示。如果源代码仅一两个文件,采用这种方式非常简单,如果是一个比较大的工程,行命令编译连接方式不可取,我们将采用Eclipse Helios构造编译整个工程。有关方式稍后再作说明。采用GNU g++编译C++源文件、连接目标文件(.o)及库时,一般命令格式为:#编译 &g++&-c&filename.cxx&-o&filename.o&-fPIC&-O2&-I{pythoninclude}&-I{panda3dinclude} &&#连接 &g++&filename.o&-o&filename&-fPIC&-L{panda3dlibs}-lp3framework&-lpanda&-lpandafx&-lpandaexpress&-lp3dtoolconfig&-lp3dtool&-lp3pystub&-lp3direct &
【责任编辑: TEL:(010)】&&&&&&
关于&&的更多文章
Panda3D是美国卡内基梅隆大学为娱乐巨头华特迪斯尼研发的开源、
网友评论TOP5
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
本书通过8个步骤来帮助你去准备演讲,去面对当今最容
边喝咖啡边炒股,体现的是本书作者的一种投资态度,是
本书主要探讨如何运用Python 快速构建自动化仪器控制
《网管员必读―服务器与数据存储》全面、系统地介绍了在中、高级网络管理和网络工程实施中两个重要方面的主流技术和应用:硬件服
51CTO旗下网站您的浏览器已经禁用了脚本,这会严重影响您正常使用本站的功能,请开启!
当前位置: &
& gccgcc命令 gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。 语法
gcc(选项)(参数) 选项
-o:指定生成的输出文件;
-E:仅执行编译预处理;
-S:将C代码转换为汇编代码;
-:显示警告信息;
-c:仅执行编译操作,不进行连接操作。 参数 C源文件:指定C语言源代码文件。 实例 常用编译命令选项 假设源程序文件名为.c 无选项编译链接
gcc test.c 将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。 选项 -o
gcc test.c -o test 将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。 选项 -E
gcc -E test.c -o test.i 将test.c预处理输出test.i文件。 选项 -S
gcc -S test.i 将预处理输出文件test.i汇编成test.s文件。 选项 -c
gcc -c test.s 将汇编输出文件test.s编译输出test.o文件。 无选项链接
gcc test.o -o test 将编译输出文件test.o链接成最终可执行文件test。 选项 -O
gcc -O1 test.c -o test 使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。 多源文件的编译方法 如果有多个源文件,基本上有两种编译方法: 假设有两个源文件为test.c和testfun.c 多个文件一起编译
gcc testfun.c test.c -o test 将testfun.c和test.c分别编译后链接成test可执行文件。 分别编译各个源文件,之后对编译后输出的目标文件链接。
gcc -c testfun.c
#将testfun.c编译成testfun.o
gcc -c test.c
#将test.c编译成test.o
gcc -o testfun.o test.o -o test
#将testfun.o和test.o链接成test 以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。最近更新的命令 在Linux命令大全(man.linuxde.net)可以查询您所需要的Linux命令教程和相关实例。如果您觉得本站内容对您有所帮助,请推荐给更多需要帮助的人。

我要回帖

更多关于 linux 编译 的文章

 

随机推荐