该博客为《Ubuntu 相关》系列博客的第五篇,该系列博客主要对Ubuntu安装各种软件或者库进行一个记录,方便重装系统后快速恢复工作。
这是进项目组以来接受的第一个任务的后续工作,以此记录实现过程。
此篇紧接之前的工作,实现服务器上的部署工作。

阿里云服务器上调用自己编写的matlab函数

  • 获得自己的服务器
  • 登录服务器
    • 安装 OpenSSH Server
      • 安装
      • 查看版本
      • 确认启动
    • 登录服务器
      • 使用Putty
        • 安装Putty
        • 使用Putty 连接到远程服务器
      • 使用终端登录/登出服务器
        • 登入命令格式 :
        • 登出命令格式:
  • 配置服务器环境
    • 本地文件上传到服务器
      • 使用FileZilla
        • 在本机上安装FileZilla客户端
        • 启动filezilla
        • 新建一个永久的连接
      • 使用终端
    • 添加环境变量
  • 上传自己编写的工程并编译
    • 上传工程
    • 编译工程
      • 安装Cmake
        • 本地主机操作
          • 官网下载cmake-3.12.2.tar.gz
          • 解压到指定目录
          • 将解压后的文件上传到服务器端
        • 云端服务器的操作
      • 编译代码
        • /usr/bin/ld: warning:
        • 解决方案
      • 运行代码

获得自己的服务器

参加阿里云高校计划即可获得两个月时候用的时长的服务器。

关于服务器的配置,我都是按默认值选择的(此处没有截图!!!),系统选择的是CentOS 8.0

登录服务器

安装 OpenSSH Server

登录服务器我们使用ssh协议,所以我们首先应该安装OpenSSH Server

安装

 sudo apt-get install openssh-server

查看版本

ssh   -V

确认启动

sudo ps -e |grep ssh

登录服务器

查找资料,找到两种登录服务器的方法

使用Putty

安装Putty

Putty是一款远程登录工具,用它可以非常方便的登录到Linux服务器上进行各种操作(命令行的方式)

sudo apt-get install putty

使用Putty 连接到远程服务器

sudo putty

会弹出一个登录页面。 如图所示:(感觉不很好用,我就卸载了,这里用的dalao的图)

使用终端登录/登出服务器

此处参考dalao博客:《ssh 登入登出》

登入命令格式 :

ssh name@192.168.0.10

登出命令格式:

logout 192.168.0.10

配置服务器环境

我们要在服务器上实现调用自己编写的MATLAB函数,我们就需要预先在服务器上配置MATLAB环境,这里我们安装MCR(MATLAB Compiler Runtime),Ubuntu上的安装可以参考我的博客《Ubuntu下用c++调用自己编写的matlab函数》

但是,ubuntu是有图像界面的,而,服务器是没有图形界面的,这就不能用我上面博客的方式配置环境了。

我采用的方法是,把上述博客已经编译好的文件直接拷贝到服务器上,当然由于网速的原因,这个过程有点漫长,但是,是可行的!

本地文件上传到服务器

这里也是查找到了两种方法,接下来分别介绍。

使用FileZilla

一下内容参考dalao博客《在 Ubuntu16.04 安装 FileZilla,进行文件传输》
FileZilla是一个免费开源的FTP软件。

FileZilla直接支持32/64位的WinXP/7,也支持Linux。开源免费无需破解,自带中文版无需汉化。

在本机上安装FileZilla客户端

sudo apt-install filezilla

卸载 filezilla 命令:

sudo apt-get remove filezilla

启动filezilla

filezilla

如图所示:(这里就用dalao的图吧,因为有标记!!)

输入:

主机:sftp://192.168.1.102 (换成服务器的IP地址。前面的sftp://一定要加)

用户名和密码照实填。

新建一个永久的连接

不想每次在“快速连接”里手动输入,您也可以用“站点管理器”,新建一个永久的连接使用。

上图的左上角有个站点管理器,我们可以在此新建站点。


然后在站点列表中就可以看到我们新建的站点了。

使用终端

以下参考dalao博客《ubuntu中将本地文件上传到服务器》

在本地的终端下,而不是在服务器上。在本地的终端上才能将本地的文件拷入服务器。

scp -r localfile.txt username@192.168.0.1:/home/username/

1)scp是命令,-r是参数
2)localfile.txt 是文件的路径和文件名 (本地)
3)username是服务器账号
4)192.168.0.1是要上传的服务器ip地址
5)/home/username/是要拷入的文件夹路径(服务器路径)

scp root@192.168.1.155:1.txt 2.txt (把服务器的1.txt下载到本地,并且重命名为2.txt)
scp 2.txt root@192.168.1.155:3.txt (把本地2.txt文件上传到服务器的root目录下,并且命名为3.txt)

拷贝完成后我们的服务器文件夹会增加一个新的文件:MATLAB_Compiler_Runtime

查看文件的大小:(参考dalao博客《ubuntu查看文件和文件夹大小》)

du -h --max-depth=1

添加环境变量

sudo vim ~/.bashrc

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/MATLAB_Compiler_Runtime/v91/runtime/glnxa64:/home/MATLAB_Compiler_Runtime/v91/bin/glnxa64/:/home/MATLAB_Compiler_Runtime/v91/sys/os/glnxa64:/home/MATLAB_Compiler_Runtime/v91/sys/opengl/lib/glnxa64

此处的添加环境变量与ubuntu上的是一样的,可以参考我的博客《Ubuntu下用c++调用自己编写的matlab函数》。

source ~/.bashrc

上传自己编写的工程并编译

上传工程

scp /.../predictresuals yourname@yourIP:/.../

上传结束即可在服务器文件下增加一个文件:predictresuals

编译工程

安装Cmake

以下参考dalao博客《centos7 cmake: 未找到命令解决方案》

我在服务器上没法git clone,不知道什么原因,所以我分了两块进行操作,如果可以在服务器下载成功,以下步骤可都在服务器端操作。

本地主机操作

官网下载cmake-3.12.2.tar.gz

https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2.tar.gz

解压到指定目录
tar -zxvf cmake-3.13.2.tar.gz
将解压后的文件上传到服务器端
scp /.../cmake-3.13.2 yourname@yourIP:/.../


可以看到,home文件下增加了一个cmake-3.13.2文件,上传成功!!!

云端服务器的操作

进入解压后的目录

./bootstrap

此时,报错!!!
Error when bootstrapping CMake: Cannot find a C++ compiler that supports both C++11 and the specified C++ flags.

以下参考:《安装cmake过程出错:Error when bootstrapping CMake: Cannot find a C++ compiler that supports both C++11 and the specified C++ flags.》和《make: *** 没有指明目标并且找不到 makefile。 停止。》

原因 :
原因 1:没有执行./configure 所以没能生成makefile
原因 2:不是没有makefile文件,而是你没有安装gcc编译器。先安装gcc编译器吧,与gcc相关联的软件比较多,你需要逐个安装。安装完gcc后才能用源代码的方式编译安装软件。

yum install gcc-c++ -y
yum -y install gcc
./configure
make
make install

运行cmake -version查看版本信息:

cmake -version

编译代码

cd /home/predictresults
mkdir build
cd build
cmake ..

make

/usr/bin/ld: warning:

出现如下警告:

解决方案

进入到库路径:

cd /home/MATLAB_Compiler_Runtime/v91/bin/glnxa64/
ls


可以看到文件中有这个文件

查看文件的依赖项

ldd libmwfl.so

有两个库没有找到:

这两个库正好是警告中没有找到的两个文件。

在本地查找这两个文件,发现在MATLAB安装文件中,我们将这两个文件拷贝到服务器中。

scp /yourmatlab path/bin/glnxa64/libssl.so.1.0.0 root@101.200.142.158:/home/MATLAB_Compiler_Runtime/v91/bin/glnxa64/scp /yourmatlab path/bin/glnxa64/libcrypto.so.1.0.0 root@101.200.142.158:/home/MATLAB_Compiler_Runtime/v91/bin/glnxa64/

运行代码

cd /home/predictresults/build
make

./usePredictresult


得到正确的运行结果,至此我们的配置就全部完成了!!!

阿里云服务器上调用自己编写的matlab函数相关推荐

  1. mysql上传到阿里云服务器地址_从0部署Web项目到阿里云服务器上

    前言 本篇文章的主要内容正如标题所言,这个过程说简单也还是有很多细节需要注意的,说难其实也挺简单的,还是希望我们大家都能勤动手去体会其中的内容,经历本身就可以使人进步.话不多说,让我们开始吧. 正文 ...

  2. 阿里云服务器上安装rabbitmq流程

    阿里云服务器上安装rabbitmq流程 1.一定要注意版本问题 rabbitmq+erlang+centos的版本得都得考虑 Erlang24和centos7不能一起用,el7对应centos7,el ...

  3. [Ops]阿里云服务器上无法发送邮件的现象原因及解决

    1.阿里云服务器上无法发送邮件的现象 2.原因及解决 阿里云对ECS服务器的25号端口出现进行了封锁:如果希望发送邮件,需要申请解封,地址是:https://yundun.console.aliyun ...

  4. 史上最详细阿里云服务器上Docker部署War包项目 实战每一步都带详细图解!!!

    史上最详细阿里云服务器上Docker部署War包项目 实战每一步都带详细图解!!! 部署jar 包方式: https://blog.csdn.net/weixin_45821811/article/d ...

  5. 云服务如何搭建数据库_【MySQL8.0.18】阿里云服务器上搭建MySQL数据库

    要想搭建个人博客,云服务器和数据库是少不了的.笔者选择在阿里云服务器上搭建一个MySQL数据库. 系统选用CentOS8.0,MySQL数据库版本8.0.18 一.数据库压缩包选择及下载 登录MySQ ...

  6. 如何将nodejs项目程序部署到阿里云服务器上

    将nodejs项目程序部署到阿里云服务器上 一.概述 二.具体步骤 1.拥有自己的服务器 2.下载Xshell 3. oneinstack配置web环境 4. XShell连接远程主机 5.更新系统软 ...

  7. 阿里云mysql本地可以连接数据库_本地电脑连接阿里云服务器上搭建的MySQL数据库...

    一.前言 在上一篇博客:在CentOS 7 下安装mysql5.7 我们在阿里云服务器上安装好了MySQL 5.7.那么怎样可以使我们在本地的 navicat for MySQL工具上连接并进行数据库 ...

  8. Win10下用SCP命令免密码上传、下载阿里云服务器上的文件

    需求: 需要定时把阿里云服务器上的数据备份文件下载到本地备份,所以需要在本地win10系统上定时执行从阿里云服务器上下载备份文件的操作. 环境和工具 本地win10系统及自带的SCP工具,工具目录:C ...

  9. 如何部署JSP应用到阿里云服务器上(一)

    今天讲解一下如何部署JSP应用到阿里云服务器上,我使用的后台服务器是 Tomcat服务器,服务器应用的开发语言是 Java Web ,后台的数据库使用的是MySQL 1 打开阿里云官方网站  http ...

最新文章

  1. [Luogu] 选学霸
  2. 距离,margin padding ,width height 用法 ,记录
  3. vc socket api建立TCP连接(包括域名解析)并收发数据的代码模板
  4. 第十五期:一个用户至少“值”100美元,美国最“贵”数据法案CCPA明年初实行!
  5. 【杂项】2020年年度报告
  6. mysql 新增返回主键自增id_详解mysql插入数据后返回自增ID的七种方法
  7. 用Python写一个批量生成账号的函数(用户控制数据长度、数据条数)
  8. Netlink0004 --- 多播机制的用法
  9. 天涯明月刀服务器维护,天涯明月刀手游维护时间表一览,维护什么时候结束?[多图]...
  10. 三菱FX系列PLC教学课程---一个从基础讲起的电梯控制实例
  11. java.lang.reflect.UndeclaredThrowableException
  12. 路由器不同网段虚拟服务器设置,局域网中不同网段互访?静态路由表必须要学会设置...
  13. 蓝桥杯研究生c语言试题答案,蓝桥杯试题_蓝桥杯 你有蓝桥杯历年的试题吗最好有参考答案啊 高职高专组C语言的 有的话麻烦你发给我 万分感谢_淘题吧...
  14. SAP PP模块工作中心主数据维护
  15. C# Access数据库操作
  16. 怎么修改背景图片大小的HTML代码,css如何改变背景图片大小?
  17. c语言单链表删除倒数第k个数,在单链表中删除倒数第k个节点
  18. 周末乐一个,转个无节操的活动
  19. TensorFlow是什么?
  20. [Markdown]windows本地写markdown文件和上传图片到免费图床

热门文章

  1. php访问网页post获取源码,post提交获得html页面源码的实现代码
  2. 电脑卡死了一定不要强制关机
  3. 运营商关闭2g服务器,中国联通正在关闭2G网络 但用户完全不必恐慌
  4. 揭秘!从iphone8的上市看苹果的供应链!
  5. RDP(远程桌面协议)的应用-3389
  6. 深入浅析Mysql联合索引原理 之 最左匹配原则。
  7. 机器学习:伪逆矩阵法
  8. Python tkinter编程之Button_2# -*-coding:utf-8 -*- ''' Button的外观效果 flat groove raised ridge solid sunken
  9. 好程序员web前端教程分享web前端入门基础知识
  10. 独立站精品模式占据主流