简单跨平台测试

本文讲述了作者在将WindowsC++项目迁移到Linux时,涉及到的源起、准备工作,如去除平台特定内容、调整编译设置,以及对Linux上静态和动态库的基础认识,包括.gcc编译指令和使用CMake等工程构建工具的初步尝试。
摘要由CSDN通过智能技术生成

目录

一、源起

二、准备工作

三、linux上静态/动态库的基础认识与测试

四、实操


一、源起

因为之前开发的软件已经初步完成了,是windows平台的,后期要向linux进行跨平台迁移,所以先做了一些简单测试。

开发语言C/C++所以本身就具备跨平台的能力,具体代码开发中只要是c++标准库的那套东西基恩上就不用改什么了。唯一要改的就是工程构建了,window的IDE有vs,linux上可选性就多了。

初步还是先试了以下 vscode + gcc编译。

主要是工程构建,具备工程化的一些构建内容测试,比如动态链接库等一些,所以仅此记录,谨防遗忘吧。

二、准备工作

所以实际将window的vs项目进行linux迁移所需做的内容并不是很复杂,因为项目开发初期的时候使用的也都是标准c++的库内容,所以相对要改动的比较少了。

1.vs工程的预编译头文件等一些window专用平台的内容去除。

2.VS的toolchain是MSVC相关专用代码,进行条件编译更改。

3.重新构建一个windows与Linux的项目管理工程。

三、linux上静态/动态库的基础认识与测试

g++  .so 动态连接库的编译实际参考如下:

用g++编译生成动态链接库 *.so 的方法-CSDN博客

.a 静态连接库
.so 动态连接库

同时gcc编译套件,在编译库文件名称时候存在默认规则加入前缀lib

主要是以下几条基础语法使用。

#编译成动态连接库
g++ test.cpp -fPIC -shared -o libtest.so

#连接动态连接库并编译成可能执行文件
g++ main.cpp -L. -ltest -o main(具体的可执行文件名称)

#查看可执行文件中是否正确引用了库
ldd main(具体的可执行文件名称)

#当前库路径设置
export LD_LIBRARY_PATH=./

有了上面的初步库文件编译基础后,就可以构建更加大型的项目了。

四、实操

实际上本次测试是失败的,因为实际工程构建的时候不可能自己一条、一条去敲编译指令。

所以需要用到Cmake makefile等工程构建工具,但是具体怎么选择,目前也在纠结中...

同时第二步准备工作也已经完成了50%了,

所以等后面整个工程构建全部完成的时候,在来补充吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值