在windows 下编写的c语言软件可以任意移植到其他系统(例如:linux操作系统)中运行么
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在windows 下编写的c语言软件可以任意移植到其他系统(例如:linux操作系统)中运行么相关的知识,希望对你有一定的参考价值。
只有兼容的C源码,才能直接移植到其他平台,编译并运行。但是兼容是很难的,因为 windows一开始就没打算和 unix/linux 兼容,所以很多系统接口都不一样,比如进程、线程创建之类的,都完全不一样。 还有很多其他的系统调用也不同,另外,文件系统命名方式也不一样(windows用 \ 来分隔目录,而linux/unix用 / , windows有盘符,unix/linux没有,等等)。所以,win下基本上很少有软件能够不做任何改动就拿到其他系统使用。 参考技术A 在任何平台下写的C语言(没编译前)是可以在任何平台上编译连接的。
假设在windows上写的C程序编译后生成可执行文件是不能在linux或mac上执行。但是,把C程序的问文件放到其他平台,再用其他平台的编译器在编译是可以执行的。本回答被提问者采纳
windows 下编译libcurl
因为linux平台采用了libcurl,有一个程序移植到到windows平台,再linux采用libcurl。在windows下准备也采用该库。在网上搜索了几位同行写的,步骤写的都不是太清楚,导致我走了不少弯路。
本文将以详细的步骤,介绍libcurl的编译。
下面是步骤:
1. 下载源代码,直接从github上clone仓库,就可以了。
git clone https://github.com/curl/curl.git
2. 选择版本
我采用了版本: 7.56.0 (tag)
3. 生成工程
执行curl/projects文件下generate.bat,生成一个windows文件,文件夹下面有VS的工程,我选择的VS14。
4. 打开curl-all.sln工程
5. 选择编译的项目:
6. 我们不需要OpenSSL 和 SSH2 两个库,我选择LIB Release执行,执行成功了。
7. 编译支持ssl的库,再projects中有一个ReadMe.txt,我们打开看一下。
The projects files also support build configurations that require third party dependencies such as OpenSSL, wolfSSL and SSH2. If you wish to support these, you will also need to download and compile those libraries as well.
如果需要支持他们,需要download这些特性呢,需要安装并且编译这些库。文件的目录结构如下:
8. 我们接下来去github下载openssl 和 ssh2吧。注意,目录结构要和curl在同一个文件夹下面。(github的服务器在老外,估计有时候下载速度有点慢,如果碰到了很慢的情况,耐心等待一会。喝茶中....)
git clone https://github.com/openssl/openssl.git
git clone https://github.com/libssh2/libssh2.git
以上是关于在windows 下编写的c语言软件可以任意移植到其他系统(例如:linux操作系统)中运行么的主要内容,如果未能解决你的问题,请参考以下文章
怎样将windows下写的c程序在linux下编译运行,谢谢?
将数据序列化代码从 C++ linux/mac 移植到 C++ windows