⑴ 如何使用cygwin编译dll
参考http://cygwin.com/ml/cygwin/2011-02/msg00313.html及其回复的部分,中间还需要对cygwin进行很复杂的初始化,慢慢琢磨一下,要全部看完,包括Rex:的部分。
⑵ cygwin下编译,调试C源程序
你是初学者吧,没关系,很简单的。
cygwin我没用过,大概是别人给套了个可视化编程界面了。
1.你运行cygwin这个软件,然后“文件/打开/”把你准备好的C源代码加载到这个软件中。(就好比我们平时用word时,先运行word软件,然后把你的文档加如入并进行编辑。)
2.在软件界面上(一般在:工具栏)找一个功能为“运行”的按纽。
准备知识:
写一个程序一般分以下步骤:
1.编辑(就是把你的源代码写出来,你可以用“记事本”写,当然一般编程工具cygwin也会提供编辑环境)
2.编译+连接(你只要点个按纽就行,这个任务完全由cygwin完成,你不必管它怎么完成这个任务的。
==============================
那么,编译是什么意思呢?
==============
由于你是初学者,我只能用尽可能通俗的话给你解释一下,这种解释是不够准确的。因为计算机本身只认识二进制指令,就是0/1的序列,每个0/1的序列都在计算机设计时,就赋予了一定的含义。比如:设计师可以把0001表示作个加法,用0000表示作个减法。但是如果人们用0/1的序列来表达我们的需求,显然非常麻烦。于是,后来一些科学家就发明了一种近似英语的计算机语言C,很明显如果要让计算机也明白C表达的意思,我们就必须把C翻译成0/1的序列。那么,编译就可以理解为“翻译”。
[打个比方1]这就好比,你是个中国人,你只会说中文,计算机是个美国人,它只会说英语。你要请计算机给你做件事,你可以用中文写好你的要求,然后请个翻译,把你的要求翻译成英语。)
======
调试是什么呢?
=====
调试分两个层面:(沿用上面的比方1)
1.语法层
你用中文表达你的要求时,可能你的用语不够规范,或写了错别字,使得你
请的翻译不理解你的意思,没办法翻译下去。这时,这个翻译就会通知你说:“对不起,你这个字是不是写错了”。于是,你就“调整调整,修改修改,才试一试”(“调试”由此得名),然后才请翻译进行翻译。
2.语意层
由于你的疏忽,你把要求表达错了。举个离谱点的例子:你本意是打算请计算机帮你买张去北京的火车票的,结果你不小心,写成了买张去上海的火车票。出现这个错误,翻译没方法告诉你,只有等计算机把一张上海的车票给你,你才意识到,于是你重新调试,才执行。
⑶ 如何让libtool不链接生成脚本文件
对于很多开源库,他们一般都提供automake的编译发布形式,也就是三步曲:./configure && make && make install。
gdb hello-world如下:
flushthink@gentoo64 ~/work/libevent-2.0.21-stable/sample $ gdb hello-world
GNU gdb (Gentoo 7.5.1 p2) 7.5.1
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <htt p:/ /gnu.org/licenses/gpl.h tml>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type \"show ing\"
and \"show warranty\" for details.
This GDB was configured as \"x86_64-pc-linux-gnu\".
For bug reporting instructions, please see:
<htt p:/ /bugs.gentoo.o rg/>...
\"/home/flushthink/work/libevent-2.0.21-stable/sample/hello-world\": not in executable format: File format not recognized
(gdb)
file hello-world如下:
flushthink@gentoo64 ~/work/libevent-2.0.21-stable/sample $ file hello-world
hello-world: POSIX shell script, ASCII text executable
vim hello-world如下:
flushthink@gentoo64 ~/work/libevent-2.0.21-stable/sample $ vim hello-world
#! /bin/sh
# hello-world - temporary wrapper script for .libs/hello-world
# Generated by libtool (GNU libtool) 2.4.2
#
# The hello-world program cannot be directly executed until all the libtool
# libraries that it depends on are installed.
#
# This wrapper script should never be moved out of the build directory.
# If it is, it will not operate correctly.
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
查automake在线文档htt p:/ /ww w.g nu.o rg/software/automake/manual/libto ol.h tml#Link-mode发现:
-no-install Link an executable output-file that can't be installed and therefore doesn't need a wrapper script on systems that allow hardcoding of library paths. Useful if the program is only used in the build tree, e.g., for testing or generating other files.
得出了结论(可以./configure --help查看):
./configure --disable-libevent-install && make
这样就可以直接调试了。
⑷ 如何用 cygwin + libtool 编译出 VS 可用的 lib/dll
经过努力,发现这个连接的方法,是可以编译生成libcurl.a文件的。我的方法是将解压的curl源码放到ndk根目录。在cygwin中切换到(ndk目录)/curl。然后运行./configure命令生成curl_config.h,然后将android.mk中节点LOCAL_CFLAGS+=\$(common_CFLAGS)\-I$(LOCAL_PATH)/include\-I/usr/include补充缺少内容。然后编译,有好多警告,不过最后还是成功了。
⑸ 用cygwin如何编译已经写好的makefile文件
使用cd命令跳转到makefile所在目录
$ cd FILE_PATH
使用make命令,make会自动寻找文件名为makefile的文件
$ make
⑹ 如何用Cygwin/gcc编译Windows程序
在Cygwin/gcc环境下编译出来的程序,在Windows下执行的时候必须依赖cygwin1.dll,如果要不依赖于这个dll文件的话,可在用Cygwin/gcc编译时加上-mno-cygwin选项。
⑺ cygwin下可以编译android源码吗
cygwin下可以编译android源码。
1.Cygwin简介
Cygwin是在Windows下模拟Linux环境的工具集,它主要包含一下两个部分:
1) cywin1.dll : 该文件模拟了真是的LinuxAPI,是一个API模拟层,开发人员可以将在Linux下编写的C/C++ 源代码在Cygwin中进行编译,在编译的过程中,如果C/C++ 调用了Linux中的API,Cygwin就会利用cygwin1.dll 来编译 C/C++源代码,从而可以在windows下生成Linux下的lib...so文件
2) 模拟Linux环境的工具集
另外,msys也是在windows 下模拟linux环境的工具。
⑻ cygwin 如何配置Java的编译环境
问这个问题本身就很奇怪?
①
cygwin做什么?
②
安装cygwin过去主要是由于android上的c/c++开发环境,android官方不支持,很多人通过非官方的cygwin+jni的方式进行处理;
③
ndk到了r8以后,android官方已经将c/c++编译方式进行了转正,官方已经开始支持,所以现在的ndk开发是不需要cygwin的,
希望对你有用,我是ndk吧的吧主,有问题也可以到ndk吧来找我,谢谢!