From 51a49a4470ebabc03de1d92fc60eb022a7370c65 Mon Sep 17 00:00:00 2001 From: HappyTanuki Date: Fri, 29 Aug 2025 05:44:56 +0900 Subject: [PATCH] =?UTF-8?q?ffmpeg=20=EB=B6=80=EB=A5=BC=20=EB=95=8C=20?= =?UTF-8?q?=EB=AC=B4=EC=A1=B0=EA=B1=B4=20extern=20c=20=ED=95=98=EA=B8=B0..?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 24 +++++++++++++++++++----- src/main.cpp | 3 +++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 70419b3..f835e9f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,11 +14,11 @@ if(WIN32) set(OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR}/include") if(CMAKE_BUILD_TYPE STREQUAL Debug) - set(OPENSSL_CRYPTO_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MTd/libcrypto.lib") - set(OPENSSL_SSL_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MTd/libssl.lib") + set(OPENSSL_CRYPTO_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MDd/libcrypto.lib") + set(OPENSSL_SSL_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MDd/libssl.lib") else() - set(OPENSSL_CRYPTO_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MT/libcrypto.lib") - set(OPENSSL_SSL_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MT/libssl.lib") + set(OPENSSL_CRYPTO_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MD/libcrypto.lib") + set(OPENSSL_SSL_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MD/libssl.lib") endif() endif() @@ -30,6 +30,9 @@ FetchContent_Declare( Boost URL "https://github.com/boostorg/boost/releases/download/boost-1.89.0/boost-1.89.0-cmake.7z" DOWNLOAD_EXTRACT_TIMESTAMP ON + CMAKE_ARGS + -DBOOST_USE_STATIC_LIBS=OFF # DLL 사용 + -DBOOST_USE_STATIC_RUNTIME=OFF # /MD, /MDd 사용 ) message(STATUS "Fetching and making available Boost...") FetchContent_MakeAvailable(Boost) @@ -74,9 +77,13 @@ set(FFMPEG_LIBRARY_PATH ${ffmpeg_SOURCE_DIR}/${FFMPEG_LIB_DIR}) set(FFMPEG_INCLUDE_PATH ${ffmpeg_SOURCE_DIR}/${FFMPEG_INCLUDE_DIR}) find_library(AVCODEC_LIBRARY NAMES avcodec PATHS ${FFMPEG_LIBRARY_PATH} NO_DEFAULT_PATH) +message(STATUS "AVCODEC_LIBRARY = ${AVCODEC_LIBRARY}") find_library(AVFORMAT_LIBRARY NAMES avformat PATHS ${FFMPEG_LIBRARY_PATH} NO_DEFAULT_PATH) +message(STATUS "AVFORMAT_LIBRARY = ${AVFORMAT_LIBRARY}") find_library(AVUTIL_LIBRARY NAMES avutil PATHS ${FFMPEG_LIBRARY_PATH} NO_DEFAULT_PATH) +message(STATUS "AVUTIL_LIBRARY = ${AVUTIL_LIBRARY}") find_library(SWSCALE_LIBRARY NAMES swscale PATHS ${FFMPEG_LIBRARY_PATH} NO_DEFAULT_PATH) +message(STATUS "SWSCALE_LIBRARY = ${SWSCALE_LIBRARY}") if(NOT AVCODEC_LIBRARY OR NOT AVFORMAT_LIBRARY OR NOT AVUTIL_LIBRARY) message(FATAL_ERROR "FFmpeg 라이브러리를 찾을 수 없습니다. 다운로드 경로를 확인해주세요.") @@ -108,9 +115,9 @@ target_link_libraries(${BOT_NAME} PRIVATE Boost::log) target_link_libraries(${BOT_NAME} PRIVATE Boost::beast) target_link_libraries(${BOT_NAME} PRIVATE OpenSSL::Crypto) target_link_libraries(${BOT_NAME} PRIVATE OpenSSL::SSL) +target_link_libraries(${BOT_NAME} PRIVATE ${AVUTIL_LIBRARY}) target_link_libraries(${BOT_NAME} PRIVATE ${AVCODEC_LIBRARY}) target_link_libraries(${BOT_NAME} PRIVATE ${AVFORMAT_LIBRARY}) -target_link_libraries(${BOT_NAME} PRIVATE ${AVUTIL_LIBRARY}) target_link_libraries(${BOT_NAME} PRIVATE ${SWSCALE_LIBRARY}) if(WIN32) @@ -142,4 +149,11 @@ add_custom_command(TARGET ${BOT_NAME} POST_BUILD "$" "$" COMMENT "Copying Boost.Process DLL/so files to output directory" +) + +add_custom_command(TARGET ${BOT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + "${CMAKE_BINARY_DIR}/${FFMPEG_ARCHIVE_NAME}/bin" + "$" + COMMENT "Copying FFMpeg_AVCODEC DLL/so files to output directory" ) \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index d5c98e5..d7158c5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,9 +2,12 @@ #include #include #include +extern "C" { #include +} #include int main(int argc, char* argv[]) { + std::cout << "FFmpeg version: " << av_version_info() << std::endl; return 0; } \ No newline at end of file