Cygwin+gcc构建Windows下类Unix开发平台(1)

合集下载

windows下eclipse集成cygwin编译android_NDK(即结合jni调用c-c++)

windows下eclipse集成cygwin编译android_NDK(即结合jni调用c-c++)

一、前言Google Android发布了NDK,引起了很多发人员的兴趣。

NDK全称:Native Development Kit,官方下载地址:/sdk/ndk/index.html1.NDK是什么The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications.Android applications run in the Dalvik virtual machine. The NDK allows you to implement parts of your applications using native-code languages such as C and C++. This can provide benefits to certain classes of applications, in the form of reuse of existing code and in some cases increased speed.英语不好的,自己GOOGLE吧。

简而言之,NDK就是一套基于C和C++底层开发API的集成工具组件,使用NDK开发编译的应用程序同样可以基于虚拟机Dalvik上“疯跑”。

如果你问为啥推出NDK,敝人以为C和C++开发的应用程序其卓越性能不用提了,至少C和C++被反编译的可能性降低了很多,要比JAVA安全保密多了。

2.ANDROID NDK 带来了什么a)一套工具,基于本机编译的C和C++源代码库。

b)一种部署在ANDROID设备上,可以将so和java一起打包成APK的方法。

c) A set of native system headers and libraries that will be supported in all future versions of theAndroid platform, starting from Android 1.5. Applications that use native activities must be run onAndroid 2.3 or later.(自个理解吧,最好别用GOOGLE,我试过了不是人话。

Cygwin的安装配置

Cygwin的安装配置

Cygwin的安装配置Cygwin的安装比较简单,步骤如下:1.先从官方网站或其它镜像网站下载一个Cygwin的网络安装程序,通常叫:setup.exe,文件很小。

2.运行下载到本地的Cygwin网络安装程序,它会以导航方式来帮你下载/安装Cygwin中的软件,在导航页的第一页会显示这个安装程序的版本号。

3.接下来,安装程序有3个安装方式的选择:∙Install from Internet:此为先从网上下载Cygwin软件包,再安装。

这些软件包在安装后仍保留,不删除,为了以后再次使用。

如果你第一次使用Cygwin,之前没有下载过Cygwin的软件包,就使用这个安装方式,安装完之后,下次安装(比如:重装系统后、或在其它机器上安装)时,就可以使用这些已下载的安装包。

∙Download Without Installing:此为只从网上下载Cygwin软件包,但不安装。

∙Install from Local Directory:此为使用本地目录中已下载的Cygwin软件包来安装软件。

4.选择Cygwin的安装路径,这个路径也是Cygwin安装完成后,它所模拟的Linux环境的根目录(RootDirectory)。

5.选择Cygwin软件包的下载保存路径,安装完后,可以备份这个路径下的软件包,以备下次安装。

6.指定从哪个Cygwin的镜像站点下载软件包,选择一个速度最快的地址。

在中国,这个镜像站点的速度还可以,如果列表中没有的地址,可以手动加入地址:/pub/,然后选择它。

7.选择需要下载/安装的软件包。

点击软件包选择界面上的View按钮,可以以:软件包分类、全部软件包、最新软件包、没有安装的软件包等方式显示软件包列表。

在Search后的可以键入想要下载/安装的软件包名字,然后再从软件包列表中选择。

有4个对软件包版本下载/安装的全局设置:∙Keep:表示保持已安装的软件包的版本不变。

∙Prev:表示安装上一个稳定版本的软件包。

cygwin的使用

cygwin的使用

Cygwin使用cygwin使用心得1.在cygwin里访问Windows盘cd /cygdrive/ccd c:2.整合cygwin命令到Windows中假设cygwin安装在d:/develop/cygwin,则将d:/develop/cygwin/bin添加到系统变量PATH 中(最好加在windows前面,这样的话,有些相同的命令的话,是先执行cygwin的命令,而不是windows命令,比如find)就可以直接在cmd.exe下面执行tar czvf xxx.tgz ./基本上所有的命令都可以用了,包括ls,more,less,find,grep等。

3.使用TGZ备份将cygwin的BIN加入到PATH建一个BAT文件:@echo offd:cd d:\website\8thmanagetar czvf 8thmanage.tgz 8thmanage4.Windows使用SHELL脚本将cygwin的BIN加入到PATH在$CYGWIN的目录/var/下面建一脚本t.sh,注意,t.sh里面的路径,都是相对于$CYGWIN 的,里面需要访问C盘的,请用/cygdrive/c/在Windows下执行:d:\cygwin\bin\bash d:\cygwin\var\t.sh(可以定期执行)5.同步Windows系统用户mkpasswd -l > /etc/passwdmkgroup -l > /etc/group如果有Domain的话,需要加上-d domainname6.安装系统服务cygrunsrv7.cygwing下使用rsynca.安装rsync组件b.进入cygwin,配置服务器vi /etc/rsyncd.conf...screts file=/etc/tom.ipaddr.pas配置文件,参考我写的另外一篇rsync的文章,注意:密码文件权限必须是0400chmod 0400 /etc/tom.ipaddr.pasc.启动服务端rsync --daemond.客户端同步在客户端的cygwin下面,运行rsync同步,具体命令,请参考另外一篇rsync的文章。

windows下swoole安装教程

windows下swoole安装教程

windows下swoole安装教程1)下载安装cygwin(根据操作系统选择32位或者64位):选择在windows中虚拟环境的root⽬录选择下载安装的⽹络节点,如果选择的节点状况不好,可以另选别的节点。

下⾯选择要安装的包,没有全部选择安装不要点击“下⼀步”(2)gcc-core(3)php、php-devel(两者版本要相同)(4)autoconf(5)pcre-devel(6)make(7)安装openssl、openssl-devel(8)都选择完成后点击下⼀步会出现安装进程,因为使⽤⽹络节点安装,所以可能会有安装中断或者缓慢的情况,关闭重新打开应⽤换⼀个节点继续安装就可以。

选择安装完成后在桌⾯⽣成快捷⽅式。

(9)下载swoole安装包:并解压到cygwin的安装⽬录(在步骤1中有选择cygwin的root⽬录)解压后如图:(10)打开cygwin应⽤(11)编译安装swoole扩展(swoole解压的⽂件夹名字视实际情况⽽定)cd /swoole-src-1.9.14/phpize./configure --enable-opensslmakemake install(12)make install 之后会⽣成extension的路径(该路径在步骤14中使⽤)(13)查找php.ini路径: php -i | grep php.ini(该⽂件路径在步骤14中使⽤)(14)将extension= /usr/lib/php/20151012/swoole.so 添加到/etc/php.ini⽂件中,保存修改。

(15) php -m 查看是否已经有了swoole扩展,如果有,则说明安装成功。

linux gcc编译win32程序

linux gcc编译win32程序

linux gcc编译win32程序如何通过Linux GCC编译Win32程序在跨平台开发中,有时候我们可能需要在Linux操作系统上编译Windows 平台的程序。

虽然Windows和Linux是两种截然不同的操作系统,但是通过使用GCC编译器和一些工具,我们仍然可以完成这个任务。

在本文中,我将向您展示一步一步使用Linux GCC编译Win32程序的过程。

请按照以下步骤进行操作。

步骤1:安装GCC编译器首先,确保您的Linux系统中已经安装了GCC编译器。

如果没有安装,可以通过以下命令在终端中进行安装:shellsudo apt-get install build-essential这条命令将会安装GCC编译器以及相关的开发工具。

步骤2:安装MinGW工具链MinGW是一个在Windows上运行的开发工具链集合,可以用来编译Windows平台的可执行文件。

我们将在Linux上使用MinGW工具链来编译Windows程序。

您可以通过以下命令在终端中进行安装:shellsudo apt-get install mingw-w64这条命令将会安装MinGW工具链。

步骤3:创建Win32交叉编译环境现在,我们需要为GCC编译器创建一个Win32交叉编译环境。

在终端中运行以下命令:shellsudo update-alternatives config x86_64-w64-mingw32-gcc该命令将显示一个列表,列出了可用的编译器版本。

选择与您的系统架构相对应的gcc版本。

按照提示进行选择。

步骤4:编写Win32程序在准备好编译环境后,我们可以开始编写Win32程序。

创建一个C语言源文件,比如"hello.c",并输入以下代码:c#include <windows.h>#include <stdio.h>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCEhPrevInstance, LPSTR lpCmdLine, int nCmdShow) {MessageBoxA(NULL, "Hello World!", "Hello", MB_OK);return 0;}这是一个简单的Win32程序,用于显示一个消息框。

Cygwin使用指南

Cygwin使用指南

Cygwin使用指南下载:1. 下载、运行安装向导文件一开始的下载方法,了解Cygwin的人都知道:就是到: 中先当个安装向导文件setup.exe,这个是Cygwin的官方下载安装向导文件,而且也只能通过它才能正确下载最新的Cygwin版本(为何?稍后有说明)。

setup.exe下载完毕,双击运行,程序安装向导界面如下图所示:点击“下一步”继续,准备选择Cygwin的安装方式。

2. 选择安装方式如上图所示,一共有三种安装方式:(1)Install from Internet:直接从Internet上下载并立即安装(安装完成后,下载好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。

(2)Download Without Installing:只是将安装文件下载到本地,但暂时不安装。

(3)Install from Local Directory:不下载安装文件,直接从本地某个含有安装文件的目录进行安装。

强烈建议选择第(2)项,以便于能够手工指定安装路径。

然后再点击”下一步“。

3. 设置安装文件的本地存储路径由于我们选择的是直接下载的安装方式,所以必需指定好一个本地下载文件存储目录。

安装目录所在的驱动器剩余空间必须足够(若要完全下载,至少需要600M以上的空间)。

设置好后,点击“下一步”。

4. 选择连接方式如上图所示,共有三种连接方式选择:(1)Direct Connection:直接连接。

(2)Use IE5 Settings:使用IE的连接参数设置进行连接。

(3)Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址和端口号)。

用户可根据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,也就是直接连接方式。

然后再点击“下一步”。

5. 选择下载站点经过一番搜索,安装向导为我们列出了众多可用的下载镜像站点以供选择,有HTTP的也有FTP的。

cygwin编译python

cygwin编译python

cygwin编译python在Cygwin环境中编译Python可能会涉及一些复杂的步骤,因为Cygwin是一个在Windows平台上运行的类Unix环境,而Python通常是为Unix和类Unix系统设计的。

以下是一般的步骤:1. 安装Cygwin,首先,你需要确保已经在你的系统上安装了Cygwin。

你可以从官方网站下载安装程序,并根据指示进行安装。

2. 安装所需的软件包,在Cygwin中,你需要安装一些额外的软件包来支持Python的编译和运行。

你可以使用Cygwin的包管理工具来安装这些软件包,例如gcc(用于编译)、make(用于构建)和其他开发工具。

3. 下载Python源代码,接下来,你需要从Python官方网站下载所需版本的Python源代码。

确保下载的版本与你的Cygwin环境兼容。

4. 解压源代码,将下载的Python源代码解压到你选择的目录中。

5. 配置和编译,在Cygwin终端中,导航到解压后的Python源代码目录,并运行"./configure"命令来配置Python的编译选项。

然后,运行"make"命令来编译Python源代码。

6. 安装,一旦编译完成,你可以运行"make install"命令来安装Python到你的Cygwin环境中。

需要注意的是,由于Cygwin和Python之间的差异,可能会遇到一些问题和挑战。

在编译过程中可能会出现依赖性问题或者与Cygwin环境不兼容的情况。

因此,在实际操作中可能需要进行一些调整和解决问题。

总的来说,在Cygwin环境中编译Python可能会比较复杂,需要一定的经验和技术知识。

如果你只是想在Cygwin环境中运行Python,建议直接通过Cygwin的包管理工具安装预编译的Python 软件包,而不是自己编译。

cygwin使用方法

cygwin使用方法

退出到Cygwin的Bash shell需要使用exit命令,很方便吧,呵呵
苹果提示:USA, Wisconsin ftp:///pub/xlivecd/xlivecd-20041201.iso
这个下载速度快
Shelley Yen 的cygnuwin : ftp://.tw/pub/free_software/cygnuwin/
drwxr-xr-x 3 Taynni-4 None 0 Aug 22 04:44 SECBOOK
drwxr-xr-x 6 Taynni-4 None 0 Feb 28 2005 TaynniCHX
drwxr-xr-x 15 Taynni-4 None 0 Mar 30 01:04 TaynniGZ
0:简介
1:下载和安装
2:使用
简介
Cygwin是一个运行于Windows下的免费的UNIX的子系统,使用一个Dll(动态链接库)来
实现,这样,我们可以开发出Cygwin下的UNIX工具,使用这个DLL运行在Windows下,大家可以想
一下,你在运行Windows的同时,也可以使用VI,BASH,TAR,SED等UNIX下的工具,不是很好吗?这个VM
Quote
Taynni-417@ENTERBD-417 ~
$ cd /cygdrive/d
Taynni-417@ENTERBD-417 /cygdrive/d
$ ls -l
ls: pagefile.sys: Permission denied
total 0
drwxr-xr-x 9 Taynni-4 None 0 Aug 31 20:56 Book
Germany, Bochum ftp://linux.rz.ruhr-uni-bochum.de/xlivecd/xlivecd-20041201.iso
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Eclipse+Cygwin+gcc构建Windows下类Unix开发平台/thread-1265089-1-1.html这两天突发奇想,Eclipse的CDT能够构建C开发平台,Cygwin可以模拟Unix环境,为什么不结合使用,构建一个在Windows下开发Unix程序的IDE平台呢?说干就干,立刻上网查了一些资料,确实已经有很多人已经有过一些研究。

感谢前人的栽树,让我有好大的阴凉,哈哈。

不过在实践过程中,还是发现有一些需要注意的地方,为防止大家也走这些弯路,我把自己的一些经验总结一下,以飨大家。

首先,下载Cygwin环境,可以在下载最新的版本,不过网上好像都是提供的网络安装版。

下载之后,执行安装,注意到选择安装部件的时候,选择开发包的安装,如下图所示:装完之后,设置一下环境变量,把Cygwin的bin目录加到Path环境变量中。

至此,Cygwin已经安装完毕。

然后,安装CDT插件,可以直接在Eclipse网站上下载单独的Eclipse CDT套装,也可以直接下载CDT插件安装到原有的Eclipse目录下,需要注意的是CDT版本和Eclipse版本必须对应,否则加载插件不成功(没试过,或许也有兼容性,不过Eclipse网站上提示需要版本对应)。

CDT插件安装完之后,能够在Eclipse的Preferences上看到C/C++的配置,这表明,安装插件成功。

现在,已经可以在Eclipse里面开发C/C++项目了,神奇吧。

下面讲几个有用的经验。

1、自己编写makefile文件CDT把很多操作都搞得比较自动化,默认情况下,它会自动生成两个目标目录,Debug和Release,在这两个目录下,都会生成相应的makefile文件。

比较恼火的是,你没有办法改它,修改完之后,又会恢复成原来的内容。

实际上,只需要把下面这个Generate Makefile automatically 的check打勾去掉,我们就可以自由的修改makefile了。

2、如何在makefile中加载动态库很多实际的工作不可能像Hello World这么简单,有很多工程我们都需要加载一些其他的库文件,比如操作Oracle数据库,我们需要链接oci库,在unix上,我们用-lclntsh,VC工程中用oci.dll,那么Cygwin中怎么使用呢?这时候,就需要一个工具pexports,用它来做一些辅助操作,使得Windows下的Dll能够为Cygwin的Gcc 使用。

Pexports下载地址/software/cygwin/pexports-0.43/moron1.html使用下面方法处理dll文件$ pexports.exe filename.dll > filename.def$ dlltool.exe --dllname filename.dll --def filename.def --output-lib libfilename.a3、如何进行调试调试实际上非常简单,直接用eclipse的Debug As,选择Local C/C++ Application。

但是,可能会提示找不到代码。

这时候,你只需要做一件事情,目录映射。

在Prefrences窗口中找到C/C++的Debug配置,有一个Common Source Lookup Path增加一个类型为Path Mapping的设置,Eclipse+Cygwin+GCC+Boost 使用Asio的环境配置Eclipse+Cygwin+GCC+Boost 使用Asio的环境配置作者:smartvessel@例子取自Boost的文档#include<boost/asio.hpp>#include<boost/date_time/posix_time/posix_time.hpp>using namespace std;using namespace boost;int main() {boost::asio::io_service io;boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));t.wait();std::cout <<"Hello, world!\n";return 0;}问题1:gcc报需要__USE_W32_SOCKETS,同时我在Boost的文档上发现需要加上预编译__USE_W32_SOCKETS。

问题是我自己敲”_ USE_W32_SOCKETS”,折腾了一两个小时,没发现错误。

这里非常奇怪的,为什么使用”__”?问题3: 报一系列的/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_iterator.hundefined reference to `_send@16'undefined reference to `WSAStartup@8'undefined reference to `_inet_addr@4'undefined reference to `_htons@4'undefined reference to `_connect@12'需要加gcc预编译ws2_32。

原因是boost.asio运行在windows的环境下,实际也封装了winsock,所有gcc 编译的时候需要这个预编译。

这个问题类似于mingw使用winsock。

问题2:Linker需要库文件libboost_date_time.a, libboost_system.a, libboost_program_options.a警告:需加上预编译_WIN32_WINNTEclipse的设置如下:1.Cygwin C++ Compiler->Preprocessor2. Cygwin C++ Linker->Libraries3. Cygwin C++ Linker->Miscellaneous在eclipse和cygwin环境下使用winpcap的开发包环境的搭建其实很简单,将winpcap开发包的lib文件夹里的文件拷贝到cygwin目录下的lib文件夹中,将include 文件夹中的文件拷贝到cygwin的/usr/include中即可。

然后在eclipse中正常建立C工程,在build的选项里把"-l"选项加上“wpcap”,如果用到发包函数可能还需要加上“wsock32”,对应gcc里的"-lwpcap“ ”-lwsock32"。

然后正常编译就可以了。

具体设置如下图:来自: /5shuang/blog/item/a437c46276b147d8e6113ae4.htmlcygwin和eclipse CDT安装好了后不能使用cygwin编译先安装了cygwin在path中加入cygwin\bin安装eclipse CDT 7.0打开eclipse -> new project创建hello world 后使用build报如下问题**** Build of configuration Default for project test ******** WARNING: The "Default" Configuration may not build ******** because it uses the "cdt.managedbuild.toolchain.gnu.cygwin.base" **** **** tool-chain that is unsupported on this system. ******** Attempting to build... ****(Cannot run program "make": Launching failed) 注:在windows的命令行下可用Eclipse+Cygwin+GCC+Boost 使用Asio的环境配置文章分类:C++编程Eclipse+Cygwin+GCC+Boost 使用Asio的环境配置作者:smartvessel@例子取自Boost的文档#include<boost/asio.hpp>#include<boost/date_time/posix_time/posix_time.hpp>using namespace std;using namespace boost;int main() {boost::asio::io_service io;boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));t.wait();std::cout <<"Hello, world!\n";return 0;}问题1:gcc报需要__USE_W32_SOCKETS,同时我在Boost的文档上发现需要加上预编译__USE_W32_SOCKETS。

问题是我自己敲”_ USE_W32_SOCKETS”,折腾了一两个小时,没发现错误。

这里非常奇怪的,为什么使用”__”?问题3: 报一系列的/usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_iterator.hundefined reference to `_send@16'undefined reference to `WSAStartup@8'undefined reference to `_inet_addr@4'undefined reference to `_htons@4'undefined reference to `_connect@12'需要加gcc预编译ws2_32。

原因是boost.asio运行在windows的环境下,实际也封装了winsock,所有gcc编译的时候需要这个预编译。

这个问题类似于mingw使用winsock。

问题2:Linker需要库文件libboost_date_time.a, libboost_system.a, libboost_program_options.a警告:需加上预编译_WIN32_WINNTEclipse的设置如下:1.Cygwin C++ Compiler->Preprocessor2. Cygwin C++ Linker->Libraries3. Cygwin C++ Linker->Miscellaneous。

相关文档
最新文档