[英]How can I create the project in Eclipse-nsight which use both Intel C++ and CUDA C++?
[英]How can I create a c++ console application which makes use of an open source c project
我一直在玩https://github.com/FFmpeg/FFmpeg的編譯版本。 但是,在使用avio_close
關閉打開的流期間,它存在一些問題(關閉它需要很長時間)。
我一直在嘗試通過閱讀實現來理解可能出了什么問題,但卻找不到任何東西。
我想做的是實際上有一個使用c文件的C ++控制台應用程序,並在運行代碼時調試它們(使用斷點等)。
不幸的是,我找不到有關如何進行設置的任何信息。 僅在新的控制台應用程序中復制文件是不夠的。
在此先感謝您的任何建議。
編輯:我已經可以看到結束投票。 如果此問題不適合該網站,我將其刪除。 但是請指出正確的發布方向,盡管這是一個普遍的問題,但我認為它很清楚並且已經提供了足夠的信息。
Edit2:是的,我不清楚自己在使用什么。
我正在Windows 10上使用Visual Studio Community 2017創建C ++控制台應用程序。
編輯3:
我在使用DLL的控制台應用程序中使用源文件所采取的步驟。
編輯4:
我沒有avio_close
實際錯誤,關閉流只是花費太長時間。 我在進行這些設置時發現,設置了fifo_size
參數后,關閉流的速度要快得多,具體取決於設置值的大小。 由於fifo_size
與數據包大小有關,因此這fifo_size
,但我還沒有發現此大小在代碼中有影響。
fifo_size = units設置UDP接收循環緩沖區的大小,以188個字節的數據包數表示。 如果未指定,則默認為7 * 4096。
Edit5:我仍然沒有找到一種將開源ffmpeg項目編譯成libs,dll和pdbs的方法。 我是第一個需要此類文件的人(似乎不現實)嗎? 到目前為止,唯一能夠提供這些功能的工具是vcpkg
。 唯一的問題是它可以編譯3.3.3版本,而最新版本是4.0.2。
我試圖修改vcpkg\\ports\\ffmpeg\\portfile.cmake
文件以包括ffmpeg的最新版本,但它沒有構建它。
還有其他建議嗎?
您需要使用一些工具和工作流程,才能使用調試器從源代碼調試應用程序。
首先,您需要知道如何構建應用程序。 通常可以通過運行以下命令來實現:
$ ./configure
$ make
由於要調試,因此必須設置一些編譯器標志,這些標志將指示編譯器生成調試信息,調試器將使用這些信息將機器指令與相關的源代碼行相關聯。 在FFmpeg的情況下,你只需要配置commad更改為:
$ ./configure --enable-debug
請看一下$ configure --help
來查看所有選項, configure
在該項目中有很好的記錄。
運行make
之后,您將具有包含調試信息的可執行文件,然后您需要學習如何使用調試器。 gdb
調試器是最常用的調試器,實際上是大多數GUI調試器的后端。 有關如何使用gdb的信息和教程很多,請在Google上搜索gdb tutorial
然后選擇最容易理解的gdb tutorial
。
您將需要學習的最相關的任務是如何設置斷點,打印變量和堆棧跟蹤。
使用諸如純gdb之類的命令行界面進行調試具有一些優勢,但是即使是老派人士也必須承認GUI派上了用場。 因此,作為最后的建議,在您理解gdb工作流程並對其感到滿意之后,您可以搜索GUI調試器甚至是完整的IDE,這無疑會使您的生活變得更加輕松。
我最終使用了vcpkg
。
作為構建此特定程序包的指南(不知道它是否適用於其他開源項目)包:
1)下載vcpkg並按照README文件中的說明進行安裝
2)前往
.. \\ vcpkg \\ ports \\ ffmpeg \\
並編輯portfile.cmake
文件。
默認情況下,vcpkg將構建ffmpeg的3.3.3版本,並使用
vcpkg_download_distfile(ARCHIVE
URLS "http://ffmpeg.org/releases/ffmpeg-3.3.3.tar.bz2"
FILENAME "ffmpeg-3.3.3.tar.bz2"
SHA512 1cc63bf73356f4e618c0d3572a216bdf5689f10deff56b4262f6d740b0bee5a4b3eac234f45fca3d4d2da77903a507b4fba725b76d2d2070f31b6dae9e7a2dab
)
更改為
vcpkg_download_distfile(ARCHIVE
URLS "http://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2"
FILENAME "ffmpeg-4.0.2.tar.bz2"
SHA512 92a3bedcd070df72b26dbe3ebf4a3faea0a02289fbefdb6a6c73d65801cf60a7e11cd832d29ab46b7749a1ffd0a31505cf75bb46bd01ea06423b454ca04e9b7b
)
這將下載最新的ffmpeg版本。 為了使構建正常工作,您還必須注釋以下行:
if("ffserver" IN_LIST FEATURES)
set(OPTIONS "${OPTIONS} --enable-ffserver")
else()
set(OPTIONS "${OPTIONS} --disable-ffserver")
endif()
我認為自版本3.3.3起,此選項已被刪除/禁用,並且不再起作用。
3)運行(需要一段時間)
。\\ vcpkg安裝ffmpeg
您現在應該有了FFMPEG的4.0.2調試和發行版本,其中包含DLL,PDB,lib和包含文件夾。
不能完全確定此過程是否正確,但是我的項目運行正常,現在可以對其進行調試。
您可以使用來自github的開源打包程序vcpkg來構建許多開源項目,包括ffmpeg,而不會遇到任何麻煩。 vcpkg最近也提供了對非Windows平台的支持,請查看。
僅需要在Powershell提示符下輸入一個襯板命令即可.\\vcpkg install ffmpeg
。 與往常一樣,vs控制台項目也可以進行調試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.