前言最近公司打算将操作系统迁移到Linux环境下,于是调研了一下现有引用类库的情况,项目中有个最主要的引用是国产的TLQ,多个项目引用了,看了一下TLQ的介绍,本身就是跨平台的,不过公司在用的是官方给的.net framework版本,本身不是跨平台的,经过协商,对方把源码发了过来,改为.net standard2.0也编译通过了,在Linux下却出问题了。Lib引用对于源码中所有P/invoke相关的将dll去掉,在Linux系统下,会自动查找lib开头的类库,如果仍然查找不到,就要设置类库的加载位置了,很简单,一共两种方式,一种是增加LD_LIBRARY_PATH的环境变量,一种是编辑/etc/ld.so.conf文件,增加类库目录,由于网上讲解很多,不再赘述。内存对齐遇到的最大问题是在Windows下一切正常,但是在Linux下会报段错误,第一次遇到的时候还很懵逼,后来查了一下原来是指针越界或重复释放内存之类的操作,刚开始的时候由于改动了代码,一直以为是自己改出来的问题,尝试了很多方式都一无所获,后来又经过协商才发现跟自己的改动完全没有关系,问题是出在了一个结构体上,这个结构体一
hellojxl