導航:首頁 > 源碼編譯 > sdl2編譯出錯

sdl2編譯出錯

發布時間:2025-05-23 06:11:35

1. 如何成功運行SDL官方提供的android平台的Demo

操作步驟:
第一步:准備SDL源代碼包;
1. 去官網下載最新版SDL2-2.0.3.tar.gz;
2. 解壓後,可以在根目錄下找到android-project目錄和README-android.txt,前者是一個一個Android工程模板,後者是關於如何使用該工程的文檔說明。
3. 調整目錄,使其成為一個可編譯的工程:
(1) 將android-project目錄剪切到與SDL2-2.0.3同級的目錄;
(2) 然後將SDL2-2.0.3目錄拷貝到android-project\jni目錄下,並重命名為SDL;
第二步:為SDL增加main函數
(1) 下載wiki.libsdl.org/Tutorials#Android.c文件;
(2) 下載之後將其放入android-project\jni\src目錄;
(3) 將main.c加入android-project\jni\src\Android.mk: 在Android.mk中默認有個YourSourceHere.c,將其替換為main.c即可;
第三步:編譯libSDL2.so和libmain.so
註:請確認NDK的bin目錄已經配置到環境變數PATH中去;
打開cmd命令窗口,進入到android-project目錄,然後執行"ndk-build"命令進行編譯。編譯成功後會在android-project根目錄下生成libs目錄,下面有各個平台的需要的這兩個so文件。
第四步:修改build target配置文件
默認的工程是使用的=android-12,必須使這個target與系統配置的一致,否則編譯會失敗. 具體的配置位於android-project/project.properties和android-project/default.properties中。由於adt-bundle-windows-x86_64-20130729.zip包對應的是android-18,因此需要將這兩個文件中的配置全部改為android-18.
第五步:導入Eclipse運行
依次選擇File->New->Android->Android Project from Existing Code,然後選擇android-project目錄將工程文件導入到Eclipse中。
然後選擇按照正常的Android工程運行即可。這個時候程序閃一下什麼都沒有,因為沒有添加資源。可下載一個bmp圖片放到android-project/assets中,這個目錄是由eclipse自動生成的。然後運行就可以看到通過SDL渲染出來的圖片了。

2. linux下編譯ffmpeg 以及交叉編譯並引入Android

在Linux環境下,編譯ffmpeg並進行Android交叉編譯的步驟如下:

首先,為支持mp3編碼,你需要安裝lame庫,可通過`ffmpeg -i audio.wav -acodec libmp3lame audio.mp3`進行測試。然後,編譯ffmpeg,常用的配置命令是`./configure --prefix=/usr/local/ffmpeg --enable-debug=3`,但可能會遇到錯誤,如gcc編譯器問題或nasm/yasm未找到。遇到這些問題,建議更新ffmpeg版本並檢查config.log日誌。

編譯時,可能遇到許可權問題,如`mkdir: cannot create directory '...': Permission denied`,這時需要確保有足夠的許可權。環境變數的配置也很重要,可以在.profile文件中添加`path`和`pkg_config_path`,配置後通過`source .profile`使更改生效。

在編譯過程中,如果ffplay沒有出現在bin目錄中,可能需要安裝sdl2並重新configure、make和install。如果遇到so文件鏈接問題,可以編輯`/etc/ld.so.conf`並運行`ldconfig`來解決。

為了在Android設備上使用ffmpeg,你需要下載Android NDK,然後執行`make-standalone-toolchain.sh`生成交叉編譯工具鏈。創建一個腳本(build_ffmpeg.sh),包含針對不同架構的編譯命令,注意調整工具鏈路徑、架構和輸出目錄。

在編譯ffmpeg時,可能需要額外添加x264支持以處理h264編碼。下載x264源碼後,同樣使用configure進行配置,但可能需要解決缺少nasm的問題。

總的來說,編譯ffmpeg涉及多個步驟,包括安裝依賴庫、配置環境、處理編譯錯誤和生成針對Android的交叉編譯版本。務必查閱文檔以確保正確設置和執行每個步驟。

3. SDL開發筆記(一):SDL介紹、編譯使用以及工程模板

若該文為原創文章,未經允許不得轉載 原博主博客地址: blog.csdn.net/qq2149793...

Qt開發專欄:三方庫開發技術(點擊傳送門)

無 下一篇:持續補充中…

前言

開發過程中,需要操作一些硬體,如播放音頻、播放視頻,SDL作為通用的C庫,可以實現同一套代碼操作設備。

SDL簡介

Simple DirectMedia Layer是一個跨平台的開發庫,旨在通過OpenGL和Direct3D提供對音頻、鍵盤、滑鼠、操縱桿和圖形硬體的低級訪問。它用於視頻播放軟體、模擬器和流行游戲,包括Valve獲獎目錄和許多不起眼的捆綁游戲。 SDL正式支持Windows、macosx、Linux、iOS和Android。源代碼中可以找到對其他平台的支持。 SDL是用C++編寫的,用C++來工作,並且還有其他幾種語言的綁定,包括C語言和Python。 sdl2.0是在zlib許可下發布的。此許可證允許您在任何軟體中自由使用SDL。

SDL下載

當前最新的版本2.0.12,官方地址: http://www.libsdl.org 下載版本包含了2.0.12版本的windows(zip)和linux(tar.gz)源文件 CSDN下載地址: download.csdn.net/downl... QQ群:1047134658(點擊「文件」搜索「SDL」,群內與博文同步更新)。

SDL編譯

步驟一:解壓文件夾

步驟二:使用CMake配置項目

配置路徑,勾選配置相關的選項,然後點擊配置:

配置生成工程的編譯器類型和具體的編譯器,如下圖:

選擇Qt5.9.3,mingw32的c和c++編譯器,如下圖:

生成工程,如下圖:

配置成功,然後「Generate」生成工程,如下圖:

修改一下安裝路徑,方便提取模塊化,再配置然後生成工程。

步驟三:使用mingw32編譯

打開Q5的mingw32編譯命令行:

切換到生成工程的路徑:

開啟四線程編譯:

步驟四:編譯成功

步驟五:安裝install

模塊化

Demo

該Demo為SDL模塊化的測試環境,僅用於測試添加模塊後,SDL環境配置是否成功。

測試代碼

bool SDLManager::testEnv() {// 初始化SDL if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)== -1)) { // 初始化失敗,打出錯誤 qDebug() << __FILE__ << __LINE__ << "Failed to SDL_INIT_VIDEO|SDL_INIT_AUDIO" << SDL_GetError(); return false; }else { qDebug() << __FILE__ << __LINE__ << "succeed to SDL_INIT_VIDEO|SDL_INIT_AUDIO"; } SDL_Quit(); return true; }

測試結果

工程模板:對應版本號v1.0.0

對應版本號v1.0.0:開發環境模板

無 下一篇:持續補充中…

原博主博客地址: blog.csdn.net/qq2149793... 原博主博客導航: blog.csdn.net/qq2149793... 本文章博客地址: blog.csdn.net/qq2149793...

4. SDL2教程【一】環境搭建

SDL是跨平台的圖形庫,適用於Windows, macOS, Linux, iOS, and Android等系統。它底層基於OpenGL或Direct3D,支持硬體加速,常用於游戲開發。SDL由C語言編寫,兼容C++操作,並支持C#和Python綁定。SDL2.0版本允許靜態連接,一個簡單的HelloWorld程序靜態連接後的體積約為2MB,內存佔用大約8MB。

在開始SDL的環境搭建之前,你需要從SDL的GitHub發布頁面下載源碼。對於靜態鏈接SDL庫的需求,必須自己編譯SDL源碼。將源碼解壓到指定目錄(例如D:\sdk\SDL),並使用cmake-gui工具進行配置。在配置中,選擇源碼目錄(D:\sdk\SDL),並設置輸出目錄為(D:\sdk\SDL\build)。確保選擇適當的Visual Studio版本進行生成,並在配置中勾選SDL_FORCE_STATIC_VCRT以支持靜態鏈接。

接著,使用Visual Studio打開生成的解決方案文件(D:\sdk\SDL\build\SDL2.sln),在Release和Debug模式下重新生成All_BUILD子項目。在正確的目錄(D:\sdk\SDL\build\Debug或D:\sdk\SDL\build\Release)下,你會找到生成的lib文件,這表示SDL已成功編譯完成。

之後,使用Visual Studio創建一個C++空項目,並在項目中添加main.cpp文件。在工程屬性對話框中,配置頭文件搜索路徑為包括SDL和其他庫的目錄。在Debug和Release配置下,設置連接器的附加依賴項,包括SDL2-staticd.lib、winmm.lib、version.lib等庫。確保刪除預處理器中的_CONSOLE標志,並將連接器子系統設置為"窗口"。清單工具的DPI識別設置為"每個監視器高DPI識別",C++語言標准設為"C++20",代碼生成運行庫設為"MTd"(Release模式下為"MT")。完成這些配置後,SDL環境搭建就完成了,下一部分將介紹如何使用SDL進行編程

閱讀全文

與sdl2編譯出錯相關的資料

熱點內容
androidapkdemo 瀏覽:647
rplsp文件夾能刪除嗎 瀏覽:249
分數的演算法有哪幾種 瀏覽:918
有序鏈表合並java 瀏覽:750
吃麻辣燙的程序員 瀏覽:811
公司研報一般用什麼app看 瀏覽:35
新買的汽車模塊還要編程嗎 瀏覽:943
cnc編程入門自學 瀏覽:835
編譯器怎麼檢查重新編譯 瀏覽:664
pdf重排安卓 瀏覽:247
linux設置自動重啟 瀏覽:223
桂林市php高級程序員招聘 瀏覽:682
安卓機信號圖標怎麼美化 瀏覽:322
安裝包幀數文件夾 瀏覽:840
演算法可以採用哪三種方式來描述 瀏覽:283
金立m6加密晶元 瀏覽:865
為什麼ted的app沒有圖像 瀏覽:428
itext對pdf簽名 瀏覽:666
vcc如何編譯 瀏覽:412
java環境變數classpath 瀏覽:607