導航:首頁 > 源碼編譯 > 交叉編譯輸出可執行文件

交叉編譯輸出可執行文件

發布時間:2022-06-02 10:56:32

⑴ Go語言怎麼交叉編譯別的機器或系統的可執行文件

windows下面用以下代碼,最好放一個bat文件里.[mw_shl_code=applescript,true]set GOROOT=c:\mygoset GOOS=windowsset GOARCH=386set GOPATH=c:\mygopathset PATH=%PATH%;c:\mingw\bin;%GOROOT%\bincd %GOPATH%\src[/mw_shl_code]

⑵ 如何交叉編譯應用程序,技巧,注意事項

如果你程序中需要讀取某個文件夾下的文件則須注意:
假如你的所有文件都放在一個名為test的文件夾下,當然也包括main.cpp,同時程序需要讀取test/input文件夾下的文件,比如說圖片,這時在程序中路徑你就需按如下寫:input/(請注意這個斜線的方向)

不知道為什麼OpenCV程序中如果有imwirte、waitKey函數(不知道是哪個的原因還是都有),雖然交叉編譯會通過,但當你把編譯好的二進制可執行程序拷貝到ARM平台下執行,會出現錯誤。(可能是當初OpenCV庫交叉編譯時沒編譯完全,當然這主要是交叉編譯平台缺少某些軟體;也可能是ARM平台系統中缺少某些軟體造成的)

⑶ 嵌入式linux的C語言應用開發如何讓多個源文件編譯成一個可執行文件

交易編譯就是將文件編譯成目標機可執行的文件。
比如說:你在PC機上寫一個helloword,怎麼讓它到開發板上運行,開發板上的指令跟PC機不到,就需要用到交叉編譯工具,編譯成開發板上能識別的指令。

⑷ 我用交叉編譯了一個hello world應用程序,下載到arm開發板上,執行輸出Killed,應該列印hello world,

不貼程序怎麼看?可能是你kill掉了內核中led這個模塊吧?內核列印出來的?

⑸ gcc和交叉編譯工具生成的可執行文件有什麼不同

安裝?也就是你有現成的交叉編譯工具鏈了?你在path中把你的bin目錄加進去就行了。當然,你的全套工具鏈要拷過來,防止庫不對或找不到庫。

⑹ 請高手指點,為什麼QT交叉編譯好以後,可執行文件在板子上執行出現一下問題,求幫忙

//你這樣試試,你上面只是設置執行環境,直接執行下面代碼
LD_LIBRARY_PATH=/庫絕對路徑你的執行文件

//如果再不行,你直接將所需庫拷貝到/lib和/usr/lib裡面去

⑺ 在ARM上運行交叉編譯後的opencv文件,沒有輸出

一、交叉編譯opencv
構造:

下載:各個庫的下載可以直接搜名字到官網下載
幾個關鍵解釋:
「--prefix=」 後邊跟make install時的位置,本例中,libz在make install時將安裝到/usr/arm-linux-gnueabihf中
「--host=」 後邊跟arm-linux表明使用的是ARM環境
有configure的才能進行configure配置
4)所有的makefile修改類似
Libz的交叉編譯
第一步:# ./configure --prefix=/usr/arm-linux-gnueabihf --shared
第二步:修改makefile,主要有下邊幾個,修改的時候通篇參照即可
CC=arm-linux-gnueabihf-gcc
AR=arm-linux-gnueabihf-ar rc
RANLIB=arm-linux-gnueabihf-ranlib
STRIP = arm-linux-gnueabihf-strip
如果有ARCH的話,ARCH=ARM
第三步:#sudo make
#sudo make install
Libjpeg的交叉編譯
第一步:#./configure --host=arm-linux --prefix=/usr/arm-linux-gnueabihf --enable-shared --enable-static CC=arm-linux-gnueabihf-gcc
第二步:參考1)中方法修改makefile
第三步:#sudo make
#sudo make install
Libpng的交叉編譯
第一步:#./configure --host=arm-linux --prefix=/usr/arm-linux-gnueabihf --enable-shared --enable-static CC=arm-linux-gnueabihf-gcc
第二步:參考1)中方法修改makefile
第三步:#sudo make
#sudo make install
Yasm的交叉編譯
第一步:#./configure --host=arm-linux --prefix=/usr/arm-linux-gnueabihf --enable-shared --enable-static
第二步:修改makefile
第三步:#sudo make
#sudo make install
Libx264的交叉編譯
第一步:#CC=arm-linux-gnueabihf-gcc ./configure --enable-shared --host=arm-linux --disable-asm --prefix=/usr/arm-linux-gnueabihf
第二步:修改config.mak里的參數,因為makefile要調用config.mak,所以修改方法同makefile
第三步:#sudo make
#sudo make install
Libxvid的交叉編譯
第一步:首先切換目錄 #cd build/generic
第二步:#./configure --prefix=/usr/arm-linux-gnueabihf --host=arm-linux --disable-assembly
第三步:#sudo make
#sudo make install
ffmpeg的交叉編譯
第一步:
./configure --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc --arch=arm --enable-shared --disable-static --enable-gpl --enable-nonfree --enable-ffmpeg --disable-ffplay --enable-ffserver --enable-swscale --enable-pthreads --disable-yasm --disable-stripping --enable-libx264 --enable-libxvid --extra-cflags=-I/usr/arm-linux-gnueabihf/include --extra-ldflags=-L/usr/arm-linux-gnueabihf/lib --prefix=/usr/arm-linux-gnueabihf
第二步:修改makefile文件
第三步:#sudo make
#sudo make install
第四步:將ffmpeg加入pkg-config
執行#sudo gedit /etc/bash.bashrc,在末尾加入
export LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib/
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/arm-linux-gnueabihf /lib/pkgconfig
export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/usr/arm-linux-gnueabihf /lib/
完畢後使用命令:#source /etc/bash.bashrc
或者單獨使用三個export,不過壽命只在一個終端中,終端關閉時就失效。
幾個關鍵解釋:--extra-flags指向xvid的安裝路徑,--extra-ldflags指向x264的路徑
安裝cmake-gui
執行:#sudo apt-get install cmake-qt-gui
Opencv的交叉編譯
第一步:修改opencv/platflrms/linux/目錄下的arm-gnueabi.toolchain.cmake,將其所有刪掉,寫入:
set( CMAKE_SYSTEM_NAME Linux )
set( CMAKE_SYSTEM_PROCESSOR arm )
set( CMAKE_C_COMPILER arm-linux-gnueabihf-gcc )
set( CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++ )
第二步:在opencv目錄下新建build目錄,進入build目錄,執行命令:
#cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake ../
這時,要保證出現:

第三步:使用cmake-gui打開CMakeCache.txt,去掉所有的無關項,修改CMAKE_INSTALL_PREFIX,來確定make install的目錄
第四步:#sudo make
#sudo make install
可能出現的錯誤:
opencv編譯不通過,出現skip之類的,說明ffmpeg沒編譯好,或者其編譯好了,但是pkg-config沒有設置好,一定要設置好其環境
前邊幾步不通過的話,看看命令有沒有少,或者有沒有修改好makefile
在arm上使用時,一種方法時直接將編譯好的opencv目錄下的lib文件拷貝到開發板對應的/lib目錄下,其他或者拷貝到自己指定的目錄,並設置好環境變數即可使用

⑻ 有沒有誰在cygwin編譯過交叉編譯器,用於在windows系統下編譯出linux下的elf格式的可執行文件。

用cygwin和用linux基本一樣,只是速度下的區別。
不存在如此的交叉編譯器。可以使用CYGWIN版本的gcc

閱讀全文

與交叉編譯輸出可執行文件相關的資料

熱點內容
程序員的平凡理想 瀏覽:236
floyd最短路徑演算法c 瀏覽:383
新湖app在哪裡下載 瀏覽:704
計算機圖形學涉及的演算法 瀏覽:370
阿里雲linux一鍵web 瀏覽:26
彈性雲伺服器注冊 瀏覽:170
垃圾程序員寫出垃圾代碼 瀏覽:761
帝國時代java下載 瀏覽:54
數據結構的經典演算法題 瀏覽:197
逍遙安卓多開管理器是干什麼的 瀏覽:917
程序員收玉米一天多少錢 瀏覽:358
程序員很可愛根據哪本小說改編的 瀏覽:987
游戲舊版安卓怎麼玩 瀏覽:266
冗餘單片機 瀏覽:852
cad抽殼命令怎麼用 瀏覽:30
伺服器第一地址怎麼改 瀏覽:499
單片機最小系統電路設計流程圖 瀏覽:670
steam源碼 瀏覽:36
關於對數的運演算法則及公式 瀏覽:782
明星談如何緩解壓力 瀏覽:148