當前位置:首頁 » 編程軟體 » cygwin編譯

cygwin編譯

發布時間: 2022-09-06 06:35:46

① 請教在cygwin下編譯uboot出錯的問題

我在編譯一個軟體的源代碼時,無論是在CYGWIN上還是在純linux上編譯都make時總是通不過,是編譯平台的問題嗎?可是linux系統自帶的編譯器應該沒錯吧~,是我漏左了什麼嗎?可是makefile文件也應該沒錯的 那是ROCKBOX源代碼來的,我想把它編譯到電腦上來 它官網上說可以的 但是他上面某些都西還不懂,本人是學生,只想多學點東西 請高手指教,我應該看些什麼書,還需了解下什麼~~~請高手指教,謝了
arm-linux-gcc has EABI version 5,but target u-boot has EABI version 0 出現這樣的提示,個人覺得是交叉編譯器版本跟uboot版本不匹配,貌似交叉編譯器版本過高了。樓主可以嘗試更換一個較低版本的編譯器,或者找一個較高版本的uboot

② 如何在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如何編譯已經寫好的makefile文件

使用cd命令跳轉到makefile所在目錄
$ cd FILE_PATH
使用make命令,make會自動尋找文件名為makefile的文件
$ make

④ cygwin編譯C語言的問題

親,你輸出的是中文么?cygwin在編碼上默認好像是utf8。如果你輸出中文的話,源碼最好轉成utf8的,然後編譯列印。

⑤ 如何在Eclipse中如何用cygwin把C文件編譯成so文件

用cygwin把C文件編譯成so文件:

1:首先,要准備好一個jni文件夾,裡麵包含三個文件:

makefile文件:

LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:=test-jni
LOCAL_SRC_FILES := test-jni.c
include $(BUILD_SHARED_LIBRARY)

如果有多個文件,可能有所不同吧,尚未嘗試。


頭文件:最好使用javah命令來生成,可見我的上一篇文章;

源文件:根據頭文件,完善源碼。


2:將jni文件夾拷貝到Android項目目錄下

3:運行cygwin,使用CD命令,切換目錄到Android項目目錄

4:輸入命令$NDK/ndk-build,屏幕顯示如下:

$ $NDK/ndk-build
Cygwin : Generating dependency file converter script
Compile thumb : test-jni <= test-jni.c
SharedLibrary : libtest-jni.so
Install : libtest-jni.so => libs/armeabi/libtest-jni.so

表示生成成功。

⑥ 如何在沒有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編譯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了

⑧ windows下如何用cygwin 編譯gmp

cygwin可以編譯生成windows下供調用的dll,包括vc可識別的lib。

Cygwin-GCC : Cygwin自帶了一個GCC,用於把C/C++-Source編譯成Cygwin平台下的EXE/DLL (使用Cygwin必須用其自帶的GCC, 因為內部會生成一些針對於平台的特定的初始化代碼,如果用其餘版本的GCC則很有可能導致程序不能正常運行.)

Cygwin-GCC : Cygwin自帶了一個GCC,用於把C/C++-Source編譯成Cygwin平台下的EXE/DLL (使用Cygwin必須用其自帶的GCC, 因為內部會生成一些針對於平台的特定的初始化代碼,如果用其餘版本的GCC則很有可能導致程序不能正常運行.)

說明 - Cygwin-GCC :

在Cygwin-Shell中可直接使用gcc .如下 :

gcc -shared xxx.c -o xxx.dll //編譯成DLL, 注意,Cygwin-GCC默認導出所有的Function.

gcc -c xxx.c -o xxx.o //編譯成OBJ

gcc xxx.c -o xxx.exe //編譯成EXE

ar r xxx.lib xxx1.o xxx2.o //打包多個obj成一個Lib (非連接)

gcc xxx.c ./L aaa.dll -o xxx.exe //引用外部DLL生成EXE

gcc xxx.c yyy.c -o zzz.exe //連接多個C文件,生成EXE.

gcc -I"/bin/include"-c xxx.c -o xxx.o //引用/bin/include目錄下頭文件,生成OBJ

gcc -L"dll.a" xxx.c -o xxx.exe //連接dll.a,生成EXE

如果想知道編譯時具體的信息,可以使用--verbose這個編譯選項,對於了解GCC的工作是很有幫助的.

額外的,也可以寫自己的導出Lib文件,以方便其餘程序引用DLL (如Cobol2002編譯器就不支持直接引用DLL, 這個時候可以寫一個Def,並導出Lib文件,便於Cobol2002使用)

具體方法如下:

1. 編譯生成DLL :

如: gcc -shared MyTest.c -o MyTest.dll, 生成MyTest.dll.

2. 寫一個DEF文件 (這里是MyTest.def),簡單的格式大致如下:

LIBRARY MyTest //這里的MyTest對應於MyTest.dll
EXPORTS
AllocMemory @1 //導出的第一個function : 對應於MyTest.dll裡面的AllocMemory(...), 注意,參數可不用寫
ReadMemory @2 //導出的第二個function : 對應於MyTest.dll裡面的ReadMemory-Function.

//注意:function可以不用全部導出,可以只選擇你需要的Function.

3. 用LIB工具(VC6有提供)生成LIB文件 (這里是MyTest.lib) :

lib /def:MyTest.def //默認生成的名稱為MyTest.lib.

4. 到此生成完畢,連接的時候只需要引用MyTest.lib即可,但要注意XXX.exe 和MyTest.dll要放在同一目錄下.

可以用 gcc --help 查看具體的命令 etc...

熱點內容
前端android 發布:2025-03-20 06:50:42 瀏覽:93
進制轉換棧c語言 發布:2025-03-20 06:50:31 瀏覽:339
myeclipse不自動編譯了 發布:2025-03-20 06:41:38 瀏覽:777
led汽車大燈和鹵素燈該選哪個配置 發布:2025-03-20 06:40:55 瀏覽:917
sql網校 發布:2025-03-20 06:16:42 瀏覽:279
安卓手機圖標排列為什麼會混亂 發布:2025-03-20 06:16:05 瀏覽:761
手機pin初始密碼是多少 發布:2025-03-20 06:15:59 瀏覽:900
javaif常量變數 發布:2025-03-20 06:15:57 瀏覽:344
iis安裝sql 發布:2025-03-20 06:05:31 瀏覽:149
製作自解壓安裝 發布:2025-03-20 05:41:49 瀏覽:305