cygwin如何編譯
❶ cygwin把源程序鏈接到指定的庫進行編譯,用什麼指令
如果你意思是問怎樣生成庫,那查編譯器相關的,看你用的什麼編譯器toolchain(VC? GCC?),手冊都會有編譯器、鏈接器的命令行參數說明,編譯時用相關選項指定庫路徑即可
如果你的問題是和Cygwin的路徑和環境變數有關的,打開cygwin安裝目錄,你會看到熟悉的目錄路徑,和linux類似的。
bin下面放可執行文件,usr/include裡面是一些庫的頭文件,lib下面放那些動、靜態庫文件。對應扔這些目錄裡面也可以,或者查手冊應該也能找到改Cygwin環境變數的方法,添加你的庫路徑就行。 cygwin裡面,windows的c盤對應路徑為/cygdrive/c/ d為/cygdrive/d/ 其他同理。。。
❷ 如何在沒有make的cygwin中編譯生成make.exe
由於我在安裝cygwin時忘了包含make包,所以安裝後發現我在bash中無法使用make命令。但是一般在cygwin下面的軟體都是要用make來實現編譯和安裝的。沒有make,又如何編譯生成make.exe呢?我琢磨了一些,依靠查看man文件找到了方法。
本文以 make 3.81 版本為例。前提是我的cygwin里有GCC 3.4.4了。
首先,別的不說,先曲下載一個make 3.81的壓縮包,在cygwin下解壓縮,進入解壓縮得到的文件夾中。依次鍵入:
./configure
./build.sh
於是在當前文件夾中會自動生成make.exe。然後將復制或者移動到shell命令根目錄下:
mvmake.exe /bin
然後就可以在任意cygwin路徑下使用make了。
❸ 如何在cygwin上編譯golang
基本步驟如下:
1、安裝hg
$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ Python ez_setup.py
$ easy_install -U mercurial
2、下載代碼
hg clone https://golang-on-cygwin.googlecode.com/hg/ golang-on-cygwin
3、准備編譯
vi /etc/profile
GOOS=linux
GOARCH=386(目前不支持amd64)
GOROOT=
GOBIN=
注意GOBIN必須存在
另外在$GOROOT/pkg/linu_386必須存在
還有,需要把/src/cmd/gc/mkbuiltin刪除後重新建一個
❹ 請教如何使用cygwin編譯ffmpeg靜態庫
如何使用ndk為ffmpeg編譯rtmp+polarssl靜態庫?這個問題花了我整整一天時間。其中遇到很多小問題,這里記錄一下,方便自己也方便其他人。
1、編譯polarssl,查看其Readme文件即可,不需要configure,只需要make時帶上必要的參數即可,不過要記得在每一次執行make命令時都帶上CC的參數(指向你的arm gcc),因為我試過在make install時沒有帶上CC的參數,雖然能編譯出polarssl但是未能正確被rtmp引用到。
2、因為前面我用的polarssl是當前最新(1.3.7)版本,而librtmp使用的好像是polarssl1.0.0以下版本的api,所以需要修改rtmp部分源碼,讓其調用新版polarssl的api,這里的修改可以參照《Migrating from PolarSSL-1.2 to the PolarSSL 1.3 branch》和《[rtmpmp] branch master updated. a312ac7 Fix compat with PolarSSL >= 1.1.0》。
3、出現 undefined reference to `havege_random』錯誤,這里是因為polarssl默認關閉了havege模塊,需要你手動開啟,主要就是修改include/polarssl/config.h,去掉POLARSSL_HAVEGE_C前的注釋,也就是要定義POLARSSL_HAVEGE_C,如下:
#define POLARSSL_HAVEGE_C
4、在編譯出上面兩個庫之後,可以開始編譯ffmpeg(2.1.1版本)了,如果遇到下面的問題 check_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
ERROR: librtmp not found
這里有三種解決方法:
第一種,因為是網路上傳播最多的,算是比較簡便的方法,就是修改ffmpeg的configure,將以下一行:
enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
改為:
enabled librtmp && require librtmp librtmp/rtmp.h RTMP_Socket -lrtmp -lpolarssl -lz
或者直接注釋掉&& *** 部分,然後再自己加上librtmp的庫路徑也行
第二種,(比較推薦,因為解決了這個會順帶解決大部分找不到庫的錯誤!)因為這里使用了pkg-config工具查找庫,而這個工具ndk並沒有附帶提供,而出現check_pkg_config相關錯誤的話,只要稍加註意,會發現在使用configure配置ffmpeg的交叉編譯時,已經有相應的pkg-config不存在的警告了。我對這個工具不熟悉,所以我只是簡單地加上了一個軟鏈接到系統的pkg-config,如下:
ln -s /usr/bin/pkg-config /home/cidy0106/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-pkg-config
這個時候重新configure的話可能會出現找不到polarssl庫的錯誤提示,需要修改一下librtmp安裝目錄里的librtmp.pc,把以下內容:
Libs: -L${libdir} -lrtmp -lz
改為:
Libs: -L${libdir} -lrtmp -lz -lpolarssl
至此,就可以正確編譯出ffmpeg了
❺ win7 64位機已經安裝了Cygwin 和WinPcap 及snort,如何在Cygwin中編譯snort急求,求知道的大神幫助
假設你的snort.exe位於d:\snort\bin\snort.exe。按以下步驟:開始——運行——cmd——d:——cd snort\bin——snort
但snort一般都是配合命令來用的,要加一些選項才有效果。如(這里的路徑是我電腦上的):
snort -c c:\snort\etc\snort.conf -l c:\snort\logs -d -e -v
如果要結束,可以用Ctrl+c,則退出snort。
說一下,snort輕量級入侵檢測方案,在windows下安裝、配置、調試成功還是不太容易的。特別是配置和調試,你要有心理准備。
❻ 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.語意層
由於你的疏忽,你把要求表達錯了。舉個離譜點的例子:你本意是打算請計算機幫你買張去北京的火車票的,結果你不小心,寫成了買張去上海的火車票。出現這個錯誤,翻譯沒方法告訴你,只有等計算機把一張上海的車票給你,你才意識到,於是你重新調試,才執行。
❼ 用Cygwin如何編C/C++程序
首先當然要在cygwin中安裝編譯環境了,比如說gcc,然後就用一些普通的編輯工具寫代碼,或者使用cygwin中的編輯工具也行。代碼寫好後,用gcc編譯就可以了,很簡單啊。
gcc編譯方法可以看一下gcc的文檔,復雜點的,可以用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補充缺少內容。然後編譯,有好多警告,不過最後還是成功了。