⑴ 如何使用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吧來找我,謝謝!