最近想接触一下c++和linux的操作系统,所以,在工作之余就尝试了一下。工作环境很丰富,旁边就有一台ubuntu的服务器可以供我使用,在此先感谢公司的美好的环境和同事的热心帮助,嘿嘿
读大学的时候接触了一点的redhat9的linux版本,也试验过在redhat9上安装各种服务器,跑java程序什么的;也试验过在redhat9上写c程序,当时觉得还蛮好玩的,可是由于工作后与linux打交道的机会很少,因此这次差不多又是从头入门了,还好身边有同事比较熟悉ubuntu的系统,嗯帮了不小忙,谢谢啦
印象里知道在linux系统上编译运行c是可以使用gcc命令的,因此,首先我想尝试在ubuntu上安装gcc编译器,在我寻求安装gcc编译器的安装方法的时候,无意发现一个帖子说:在ubuntu10以上的版本中都自动集成了gcc编译器,这点我很开心的在ubuntu上尝试了一下:
$ gcc --version
gcc(Ubuntu/Linaro 4.6.1 -9ubuntu3)4.6.1
Copyright...
...
看到上面那些输出我很开心,这表明我的这个linux操作系统上已经安装了gcc编译器了,我就不用在四处搜索安装ubuntu的方法了
接下来就是要运行c++程序了,我首先写了一个简单的c++程序:
#include <iostream>
#include <string>
using namespace std;
int main(){
cout<<"Enter your name,please :";
string name;
cin>>name;
cout<<"Hello, "<<name<<"welcome!"<<endl;
return 0;
}
很简单的一个c++的入门helloword程序,由于我是刚刚接触c++,生怕有些关键字打错,因此,我核对了一遍又一遍,然后我开开心心的使用命令进行编译该文档了。
$ gcc helloword.cpp
我期望的编译通过,然后为我生成一个编译文件,然后一切就按部就班了,可是,现实却不是这样,我遇到了一个这样的error:
undefined reference to 'std::cout'
undefined reference to 'std::base_ostream...'
...
差不多有半屏的error,这里我就不多写了,总是就是想告诉我们:这个cout 这个iostream 这个cin这些词你没定义,奇怪了这些明明就是c++里面的关键字,为什么又说我没有定义呢?然后想到可能是c++的一些库文件没有引入进来,于是尝试了安装c++运行的库文件build-essentail
$ sudo apt-get install build-essentail
完成后我有实验了一遍,可是还是同样的错误,我就纳闷了,为什么呢,后来又开始问度娘啊,功夫不负有心人,度娘终于给了我一个明确的答案:
运行c++需要使用的g++命令,而不是gcc命令,gcc是用来运行c程序的。
哦,我明白了,快试一下:
$ g++ helloword.cpp
结果:编译通过,使用ls命令查看当前目录下面的文件,发现多了一个a.out的绿色的可执行的文件
$ ./a.out
Enter your name,please:Aileen
Hello,Aileen,welcome!
上面的结果,看懂了吧,嘿嘿
如果只是写一个上面的这样的例子,c++的类的特性就没有用到,我们肯定不能仅仅满足这样的一个例子,于是我又写了一个需要引入class的例子:
"checkbook.h"
"checkbook.cpp"
"useCheckbook.cpp"
一共三个文件,其中在checkbook.h中定义了一些public的函数和一些private的变量,根据我的理解应该和java里面的接口差不多的意义。然后checkbook.cpp里就引入了checkbook.h文件,然后对checkbook.h里面的方法进行了实现(same to java里的实现类),最后在useCheckbook.cpp中引入了checkbook.h文件,当然里面定义的一些方法也可以自由使用,这里,你可以模仿者写一个简单的例子:
写好了,我很激动的使用下面的命令进行编译
$ g++ checkbook.h
$ g++ checkbook.cpp
$ g++ useCheckbook.cpp
第一条命令执行完成,使用ls查看可以发现多了一个checkbook.h.gch的文件,可是第二条命令执行的时候就出现问题了,第三条更是error多多
看来这样一个一个的编译是不能通过的,那么就需要一起编译了
$ g++ checkbook.cpp useCheckbook.cpp
结果顺利通过编译,生成了a.out文件,执行./a.out命令,顺利按照我的想法来了,OK,搞定!
另外顺便提一下,使用cc 命令一样可以用来编译c程序,使用c++也可以达到编译c++程序的同样的效果,而且在ubuntu中都已经默认的安装过了,嘿嘿,简单吧
分享到:
相关推荐
在Ubuntu操作系统上,使用CLion运行C++程序并进行CMake实践是开发C++项目的一种常见方式。SLAM(Simultaneous Localization and Mapping)是一种在未知环境中构建地图同时定位自身位置的技术,通常与机器人学、自动...
QT是一种多平台的C++图形用户界面应用程序开发框架,由挪威Trolltech公司开发(现已被Digia公司收购)。QT不仅支持Windows、Linux、Mac OS等主流操作系统,还能很好地移植到各种嵌入式设备上。QT的核心特点之一就是...
由于Qt for Android目前并不支持Windows开发,因此开发者需要在Linux(如Ubuntu 10.04)上进行。同时,系统需要安装sun-java6,因为早期版本的Qt for Android可能与Java 1.5不兼容。此外,Apache Ant 1.8.0以上的...
WebRTC C ++示例在C ++上使用WebRTC(DataChannel)的示例程序(README.en.md是此文件的英文翻译。) 使用C ++中的WebRTC DataChannel的示例代码。要求Mac OS X 的Ubuntu编译$ cd $ git clone --depth 1 ...
>默认程序编译完成后,可执行程序在bin目录下 可以在工程配置文件中进行修改! ``` DESTDIR = $$PWD/bin ``` 关于交叉编译,移植到ARM平台,可以参考我的这篇文档,介绍很详细! [传输门][2] 如果有什么问题欢迎...
提供模块和 Python 类以构建 OFDM 发射器和接收器 用于研究和教学目的,...用于 USRP 硬件的 UHD 驱动程序 GNU 无线电 (http://gnuradio.org/) ITPP (http://itpp.sourceforge.net/) python-qwt5-qt4 python-scipy
9. **可执行文件生成**:描述中提到的“bin”目录下的可执行程序是编译后的结果,使用了Qt的编译工具链,如qmake和mingw等,将源代码转换为可以在目标平台上运行的二进制文件。 10. **跨平台兼容性**:作为Qt项目,...
它在 ubuntu 14.04 上实现和测试,使用 g++ 4.8.2 编译。 有一个构建三个可执行文件的极简生成文件:RayTracing RayTracing_openmp 和 RayTracing_cuda。跑步可执行文件将在文件夹“build”中创建。 要运行该程序,...
rapl工具使用 Intel 的 RAPL 接口监控 CPU 功率的工具项目内容AppPowerMeter - 测量能量并监视应用程序的功率 PowerMonitor - 监视系统的 CPU 功率 Rapl.cpp - CPP 类设计用作 RAPL 接口跑步... make在 Ubuntu 上设置在
通过CUDA,开发者可以编写C/C++程序,直接调用GPU的硬件资源,实现高性能计算。 使用CUDA进行GPU并行遗传算法的实现,主要包括以下几个关键步骤: 1. 初始化:设置种群大小、编码方式、适应度函数、选择、交叉和...
对于Ubuntu(15.10) 须藤apt-get install libusb-1.0-0-dev 须藤apt-get install libboost-all-dev 建造 通过运行进行编译 make 如果要以用户身份运行守护程序,请将文件91-g13.rules放在/etc/udev/rules.d/(或...
默认情况下,此数据以Wireshark兼容格式在stderr上输出。 支持的SSL库: 的OpenSSL 新高中[1] GnuTLS [1] NSS的最新版本还支持SSLKEYLOGFILE环境变量,该变量可能更易于使用。建造构建依赖关系: 的libdw OpenSSL...
GDB是一个强大的源代码级调试器,它允许程序员在运行时检查和修改程序状态,查找并修复错误。当你编译GCC时,可以使用`--enable-gdb-compatible`选项来确保新版本的GCC与GDB兼容。 总的来说,GCC 8.2.0的更新和安装...
在 Ubuntu 上: sudo apt-get install g++ qt4-default libvlc-dev vlc libqjson-dev 在 Archlinux 上: pacman -S gcc-multilib qt4 libvlc vlc qjson 编译 mkdir build cd build qmake ../src make 注意:如果...
赶紧跑: bew 但是您也可以使用以下命令运行桌面Web应用程序: bew " https://twitter.com " --app-name " Twitter " --app-icon " /path/to/icon.png " --font " Ubuntu " --no-scrollbar --user-agent " ...
在Android开发过程中,使用Android Studio进行真机调试是常见的实践,但有时会遇到logcat持续不断地输出系统日志,这可能会使开发者难以专注于特定应用的日志信息,导致调试效率降低。本文将详细介绍如何解决这个...
环境与依赖Ubuntu需要安装MongoDB依赖mongo-cxx-driver()编译在根目录下执行make即可运行先启动 MongoDB。在根目录下执行./main即可架构本工程大体分为 5 部分。分别是:核心类数据库(Database):负责直接与...
它作为在过滤图像中潜在损坏的某些区域中的梯度的调整来执行。 依赖 本项目使用 cmake。 mac osx 如果您还没有 ,请下载并安装它。 为了简化安装,您可以使用 : brew install cmake linux (ubuntu) sudo apt-...
对于RTAB-Map库和独立应用程序,请访问或 。安装ROS2分布正在建设中:请参阅。ROS分布RTAB-Map在ROS发行版中以二进制形式发布。 理性的$ sudo apt install ros-noetic-rtabmap-ros旋律$ sudo apt install ros-...
对于Ubuntu / Linux,运行apt-get install libopencv-dev 对于Mac OS X,运行brew install opencv 对于Windows,浏览此存储库 怎么跑 只需运行make ,然后运行./Face-Feature-Detection 。 预习