Linux 开发环境配置

环境配置

1.安装gcc

yum install gcc
// 询问是否,按y键回车即可,或者
yum -y install gcc

2.安装g++

yum install gcc-c++
或者
yum -y install gcc-c++

安装完毕使用g++ -vgcc -v查询

另外,在离线状态下,需要用rpm包的方式安装,为了方便我这里将rpm一起打成了包,执行install.sh即可安装,只在CenOS 7.2下测试正常

gcc安装包点击下载

g++安装包点击下载 注意:安装g++前应首先安装好gcc

y

使用 VS 2019 编写和调试 Linux C/C++程序

首先在安装时我们需要选择 “使用 C++ 的 Linux 开发

[外链图片转存失败(img-cA3dgHX0-1567329530407)(C++开发环境配置.assets/20190405150513335.png)]

环境要求

  • VS 2019
  • 安装了gcc、g++版本在4.8以上的Linux主机

接下来讲解一下使用 VS2019 进行Linux程序的编写和调试。

首先我们创建一个Linux控制台程序

创建新项目

开启VS2019后,点击 “创建新项目”

[外链图片转存失败(img-YH2egrA1-1567329530429)(C++开发环境配置.assets/20190405155609824.png)]

选择语言"c++"

img

选择平台"Linux"

[外链图片转存失败(img-rt2Fzuzr-1567329530433)(C++开发环境配置.assets/2019040515581066.png)]

我们可以选择空项目或者是生成默认控制台hello程序,这里我们选择"空项目":

[外链图片转存失败(img-RAPootzP-1567329530438)(C++开发环境配置.assets/20190405155913568.png)]

然后输入项目名称进行创建:

[外链图片转存失败(img-5AhS8icr-1567329530447)(C++开发环境配置.assets/20190405163741589.png)]

配置连接器

首次使用VS编写Linux程序时,我们需要配置连接器:点击 工具 - 选项

[外链图片转存失败(img-aDdtpJ5P-1567329530451)(C++开发环境配置.assets/20190405160238136.png)]

点击 跨平台 - 连接管理器 - 添加

[外链图片转存失败(img-HElRjgYs-1567329530461)(C++开发环境配置.assets/2019040516032526.png)]

然后我们输入 Linux 主机 ip、用户名、密码等信息进行连接:

[外链图片转存失败(img-9osCTxI5-1567329530466)(C++开发环境配置.assets/20190405160421877.png)]

Linux安装远程调试

注意:此时Linux主机必须安装远程调试的服务
ubuntu下安装如下

[外链图片转存失败(img-NJEJyd74-1567329530469)(C++开发环境配置.assets/20190405172522820.png)]

安装完成后,即可连接成功。注意,只要linux主机开启SSH服务即可,只要XShell能通过22号端口连接到linux主机都可连接成功。

[外链图片转存失败(img-IAjFicXU-1567329530475)(C++开发环境配置.assets/20190405160558306.png)]

编写并调试Linux程序

右击项目,添加新建项 - 添加 C++ 源文件

[外链图片转存失败(img-SDsrlJZC-1567329530477)(C++开发环境配置.assets/20190405160747441.png)]

接下来我们编写一个普通程序并进行生成:

[外链图片转存失败(img-DuNATyhb-1567329530483)(C++开发环境配置.assets/20190405173340191.png)]

接下来我们设置断点,即可开始调试程序,**右侧为Linux的控制台窗口,即为程序输出:

[外链图片转存失败(img-yE5Yzemo-1567329530487)(C++开发环境配置.assets/20190405173615916.png)]

如果编译提示unrecognized command line option “-std=c++11” 说明gcc版本过低,需要升级,参考下面的CentOS6通过yum升级gcc/g++至版本4.8.2

编写Linux多线程程序

/**
 * 由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a, 所以在使用pthread_create创建线程时,在编译中要加 - lpthread参数:
 * g++ -o main -lpthread main.c
 */

#include <iostream>
#include <pthread.h>

using namespace std;

#define NUM_THREADS 5

// 线程的运行函数
void* say_hello(void* args)
{
	cout << "Hello Runoob!" << endl;
	return 0;
}

int main()
{
	// 定义线程的 id 变量,多个变量使用数组
	pthread_t tids[NUM_THREADS];
	for (int i = 0; i < NUM_THREADS; ++i)
	{
		//参数依次是:创建的线程id,线程参数,调用的函数,传入的函数参数
		int ret = pthread_create(&tids[i], NULL, say_hello, NULL);
		if (ret != 0)
		{
			cout << "pthread_create error: error_code=" << ret << endl;
		}
	}
	//等各个线程退出后,进程才结束,否则进程强制结束了,线程可能还没反应过来;
	pthread_exit(NULL);
}

接下来我们编写一个多线程程序,编写完成后发现编译错误:

[外链图片转存失败(img-H5PxzPjE-1567329530489)(C++开发环境配置.assets/20190405165401879.png)]

我们在linux下编译此程序时都要加上静态库 -lpthread,那么对于在linux下编译过程中如果需要用到的静态库的程序,在VS中我们就要在项目属性中:链接器->常规->附加库目录中添加对应的库路径(写Linux环境下的绝对路径),在链接器->输入->库依赖项里面写上需要的库名称,去掉名称里面的lib和扩展名.a。例如:libpthread.a就是pthread。

接下来我们去Ubuntu下查找线程静态库所在位置:

[外链图片转存失败(img-EjBxiCoB-1567329530493)(C++开发环境配置.assets/2019040517004446.png)]

以下为CentOS7 路径

/usr/lib64/libpthread.a 
/usr/lib64/libpthread_nonshared.a

注意,不同系统中的路径不一定相同

接下来我们在项目中 右击 - 属性,在链接器->常规->附加库目录中添加对应的库路径(绝对路径):

[外链图片转存失败(img-0mZOB3rQ-1567329530497)(C++开发环境配置.assets/20190405171028316.png)]

然后在链接器->输入->库依赖项里面写上需要的库名称:
pthread 和 pthread_nonshared

[外链图片转存失败(img-wWfo6A7I-1567329530500)(C++开发环境配置.assets/20190405171055579.png)]

接下来我们重新生成解决方案,则可成功通过。

[外链图片转存失败(img-8GmCs2Uj-1567329530502)(C++开发环境配置.assets/20190405171129885.png)]

接下来我们设置断点,即可开始调试程序,**右侧为Linux的控制台窗口,即为程序输出:

[外链图片转存失败(img-PmYYOtx4-1567329530505)(C++开发环境配置.assets/20190405171217490.png)]

CentOS6通过yum升级gcc/g++至版本4.8.2

1.安装仓库等

wget http://people.centos.org/tru/devtools-2/devtools-2.repo
mv devtools-2.repo /etc/yum.repos.d
yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
mv /usr/bin/gcc /usr/bin/gcc-4.4.7
mv /usr/bin/g++ /usr/bin/g++-4.4.7
mv /usr/bin/c++ /usr/bin/c++-4.4.7

2.为新版本的gcc创建软连接

ln -s /opt/rh/devtoolset-2/root/usr/bin/gcc /usr/bin/gcc
ln -s /opt/rh/devtoolset-2/root/usr/bin/c++ /usr/bin/c++
ln -s /opt/rh/devtoolset-2/root/usr/bin/g++ /usr/bin/g++

3.检查:确认已经升级到4.8.2版本。

gcc -v

添加头文件

vs:C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\VC\Linux\include\usr\include

linux:/usr/include

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值