当前位置: 首页 > news >正文

做网站需注意事项外贸数据平台有哪些

做网站需注意事项,外贸数据平台有哪些,网站建设 软件 开源,网络规划设计师考试通过率初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。

源码指引:github源码指引_初级代码游戏的博客-CSDN博客


        坑多。

目录

一、源码下载

二、为什么要下载整个库

坑,如果子模块更新失败

三、上传到ubuntu18.04虚拟机

坑,修改sh权限

四、执行sutogen.sh

五、验证结果

六、交叉编译arm arm64

坑,找不到头文件atomic_ops.h

七、验证结果


一、源码下载

        上git下载源码,GitHub - mono/mono: Mono open source ECMA CLI, C# and .NET implementation.

        我下载了整个库,由于编译版本包遇到问题,后面的操作都是基于版本库的。

        官方编译说明在(链接来自README.md) https://www.mono-project.com/docs/compiling-mono/linux/

        下面是官方说明的重点:

压缩包编译:
PREFIX=/usr/local
VERSION=4.2.1
tar xvf mono-$VERSION.tar.xz
cd mono-$VERSION
./configure --prefix=$PREFIX
make
make installgit库源码编译:
PATH=$PREFIX/bin:$PATH
git clone https://github.com/mono/mono.git
cd mono
./autogen.sh --prefix=$PREFIX
make
make install

二、为什么要下载整个库

        下载了版本包(tag那里)编译时发现不停地即时下载子模块,由于网络原因(大家都懂吧),这个行为的结果是不确定的,所以放弃了,改为克隆整个库,先在本地获取完整代码。

        然后更新子模块,子模块会放在external目录下(注意,我用的是tortoisegit,在mono根目录下更新子模块,如果在子模块目录下更新子模块则是更新子模块的子模块,而且确实存在子模块的子模块!)。

        有三个子模块也有子模块:api-doc-tools、bdwgc、linker。

        确保全部子模块和子模块的子模块更新成功。

坑,如果子模块更新失败

        删除子模块的目录,再次更新。我希望这只是我用的tortoisegit的问题。

三、上传到ubuntu18.04虚拟机

        整个库接近5G大小。

        ftp上传需要改sh文件的权限。

坑,修改sh权限

        最开始当然要修改autogen.sh的权限,但是执行会报错,逐步操作下来最终需要这么多权限:

chmod 755 autogen.sh scripts/*.sh external/bdwgc/autogen.sh

        所有操作都在源码树的根目录下进行。源码树里面有个叫“mono”的目录,整个库直接下过来默认也是mono目录,所以可能有两级mono目录。

四、执行sutogen.sh

        命令:

./autogen.sh --prefix=安装目录

        执行过程仍然不太顺利,下面是记录:

提示:mv: cannot stat 't-es.gmo': No such file or directory
解决:	apt-get install gettext 这个不一定需要在po/mcs目录下创建空文件 t-de.gmo t-es.gmo t-ja.gmo t-pt_BR.gmo
chmod 755 mono/tests/*.sh
子模块corefx是空的,删除重新更新子模块后有文件了,还有一些空的,全部删了重来
chmod 755 mcs/build/start-compiler-server.sh

        创建了几个空文件,又给几个sh增加了权限。

        最终编译完成,执行make install安装到指定的目录。

五、验证结果

        进到安装后的目录的bin下面,执行mono:

user@vm-ubuntu:~/mono/mono_install_x64/bin$ mono --version
Mono JIT compiler version 6.13.0 (main/0f53e9e151d Mon Oct 21 06:10:39 UTC 2024)
Copyright (C) Novell, Inc, Xamarin Inc and Contributors. www.mono-project.comTLS:           __threadSIGSEGV:       altstackNotifications: epollArchitecture:  amd64Disabled:      noneMisc:          softdebugInterpreter:   yesLLVM:          supported, not enabled.Suspend:       hybridGC:            sgen (concurrent by default)
user@vm-ubuntu:~/mono/mono_install_x64/bin$

        显示版本是6.13。

六、交叉编译arm arm64

        还在之前源码基础上编译,make clean清理掉。似乎不clean可能带来一些问题,每次重新搞之前做一下吧。

        这个坑就更多了,但是麻烦都在编译环境上。我用的一个特定工具链里面很多写死的路径,跟我的安装路径不一致,一个一个修改了很久,最后放弃修改,按照写死的路径重建了工具链。

        解决了工具链自身的问题,剩下的就是参数。之前我们没有使用--host参数,交叉编译必须使用--host指定目标,这个目标其实就是工具链的文件名前缀,检查一下工具链目录就知道了。

        因为一开始总是编译不过去,我试了很多工具链,包括developer.arm.com上下载的官方工具链的几个不同的版本。标准工具链的版本7(和附近的几个版本)的命名规则里面缺少“OS”部分,导致无法识别,高版本就没问题。

        我下载的几个是这样的:

        看得出来早期版本命名方式明显不同。我为什么特别选择了版本7呢?是因为本地编译的gcc版本是7,交叉编译有问题就怀疑是版本不对,不过最终是用13.3编译成功的,所以7-13应该都是没问题的。

        交叉编译用的参数:

./autogen.sh --prefix=安装目录 --host=arm-none-linux-gnueabihf

         --host要根据实际的工具链修改,标准工具13.3的bin目录下是这样的:

        一看就明白了吧。

        然后make就行了。

坑,找不到头文件atomic_ops.h

        怎么可能顺顺利利呢。

报错:
./include/private/gc_atomic_ops.h:105:11: fatal error: atomic_ops.h: No such file or directory
参见https://github.com/mono/mono/issues/20299
缺少头文件包含路径,make增加CFLAGS参数即可解决

         坑好大,解决了就容易了:

make V=1 CFLAGS="-I/home/user/mono/external/bdwgc/libatomic_ops/src/ -I/home/user/mono/mono/eglib/"

        参数V=1用来输出编译指令,默认是不输出的,不方便差错。

        增加的头文件包含路径要根据自己需要修改,我的源码树的根目录是“/home/user/mono”,注意源码树里面有个子目录也叫mono。

        然后用标准工具链13.3编译arm32成功、用一个专用工具链编译arm64成功。

七、验证结果

        用file检查文件类型,类似“ELF 64-bit LSB shared object, ARM aarch64”这样。

        上传到设备,检查版本:

root@ubuntu:~# mono_install_arm64/bin/mono --version
Mono JIT compiler version 6.13.0 (main/0f53e9e151d Tue Oct 22 07:29:06 UTC 2024)
Copyright (C) Novell, Inc, Xamarin Inc and Contributors. www.mono-project.comTLS:           __threadSIGSEGV:       normalNotifications: epollArchitecture:  arm64Disabled:      noneMisc:          softdebugInterpreter:   yesLLVM:          supported, not enabled.Suspend:       preemptiveGC:            sgen (concurrent by default)
root@ubuntu:~#

(这里是文档结束)

http://www.yayakq.cn/news/521765/

相关文章:

  • 常德网站建设案例展示网站上上传图片 怎么做
  • 个人购物网站天门市住房和城乡建设局网站
  • 福建省龙岩市新罗区建设局网站html怎么做网站的背景
  • 怎么做网站编程网站备案授权书范本
  • 在线做六级阅读网站建的企业网站如何在百度搜到
  • 轻淘客的轻网站怎么做做免费网站怎么赚钱
  • 用dw做网站用什么主题比较好深圳网络品牌推广公司
  • 运动服饰网站建设目的wordpress调用百度网盘视频播放器
  • 域名服务器没有该网站的域的列表动漫设计软件
  • 杭州家具网站建设方案html代码基础
  • 购物帮做特惠的网站西城改版网站
  • 网站差异教学成果展示网站 课程体系建设
  • 建设部网站碎发零能耗住宅网站如何开通支付功能
  • 烟台做公司网站手机网页设计软件下载
  • 淄博便宜网站设本溪做网站 淘宝店
  • 蒙牛网站建设安康市相亲平台
  • 做封面怎么把网站加上去欧派全屋整装价格表
  • 商务卫士包括网站建设用什么网站做ppt
  • 江阴住房和城乡建设局网站山西省城乡住房建设厅网站
  • 徐州网站制作方法手机网站app开发
  • 德阳网站优化怎么创建网站 免费的
  • 网站联盟三要素网站正在备案
  • 网站首页修改百度收录入口提交
  • 请问有重庆有做网站吗旺道营销软件
  • 网站建设 核算网络服务商主要包括哪些
  • 汕头网站制作公司价格济南网站开发公司
  • 招远做网站哪家好诸城网站建设葛小燕
  • 个人网站需要什么页面新建站点步骤
  • 怎么样给一个网站做自然排名网站建设客户功能详细要求
  • 网站建设 中中山开发公司