微软表示:我们的
编译器并没有考虑生成的
机器码还要能够让linux运行……开个玩笑,这个问题你得先了解编译原理,windows下的库有两种,一种是native code,这种就别想了,它之所以能够在windows上运行,当然是因为编译器把它们编译成了windows *** 作系统能够识别的机器码组织形式(严谨地来说,是链接器和加载器的不同,以及各自的系统调用压根就没有互映射性,导致了linux不能使用它们);第二种是.net平台编译出来的类库,这个是生成了中间语言(IL),跟java一样,原则上是跨平台的,不过很多年以来,它只是原则上而已,从来就没跨过。不过现在的好消息是,.net standard已经在包括linux之内的若干 *** 作系统上完成了实现,所以如果你在.net平台上编写一个完全符合.net standard库的dll的话,它是可以跑在linux上的(严格来说,是某些非常新的linux发行版),这就是大名鼎鼎的.net core,也是
微软目前在软件开发方向上大力投入的开源社区项目。所以总的来说,微软还是充分考虑到你的这种应用需求的。如果你确实想完成把windows下的应用程序改到linux下面来运行,.net core是目前最好的选择(因为还有个叫Mono的哥们也在做同样的事儿,你同样可以参考)1、首先在linux中新建文件夹,vscode打开。
2、其次vscode中使用快捷键ctrl+shift+p打开搜索栏,输出cmake,选择cmake:quickstart。
3、然后随便输入一个名字。
4、然后选择生成可执行文件还是链接库、
5、然后什么报错都不要管,直接点击vscode底部栏中的build选项,此时打开build文件夹,你要的文件已经出现。
6、最后对于dll可执行文件,还可以直接点击底部栏的三角形(run),直接运行。
用交叉编译环境是可以的。
如mingw。
建议在Windows下安装mingw,然后调试。直接调用是肯定不行的。
参考我的博客:http://jeremiah.blog.51cto.com/539865/183560
有个 mono你可以试试,或者是利用wine来读取,不过不管怎么样都不能直接读取,但是间接的是可以的。大概的就这两种方法,你可以去wine和mono的网站看看。
应该有不少这方面的资料的
评论列表(0条)