mirror of
https://github.com/HappyTanuki/BumbleCee.git
synced 2025-10-25 17:35:58 +00:00
ffmpeg 부를 때 무조건 extern c 하기...
This commit is contained in:
@@ -14,11 +14,11 @@ if(WIN32)
|
|||||||
set(OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR}/include")
|
set(OPENSSL_INCLUDE_DIR "${OPENSSL_ROOT_DIR}/include")
|
||||||
|
|
||||||
if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||||
set(OPENSSL_CRYPTO_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MTd/libcrypto.lib")
|
set(OPENSSL_CRYPTO_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MDd/libcrypto.lib")
|
||||||
set(OPENSSL_SSL_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MTd/libssl.lib")
|
set(OPENSSL_SSL_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MDd/libssl.lib")
|
||||||
else()
|
else()
|
||||||
set(OPENSSL_CRYPTO_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MT/libcrypto.lib")
|
set(OPENSSL_CRYPTO_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MD/libcrypto.lib")
|
||||||
set(OPENSSL_SSL_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MT/libssl.lib")
|
set(OPENSSL_SSL_LIBRARY "${OPENSSL_ROOT_DIR}/lib/VC/x64/MD/libssl.lib")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -30,6 +30,9 @@ FetchContent_Declare(
|
|||||||
Boost
|
Boost
|
||||||
URL "https://github.com/boostorg/boost/releases/download/boost-1.89.0/boost-1.89.0-cmake.7z"
|
URL "https://github.com/boostorg/boost/releases/download/boost-1.89.0/boost-1.89.0-cmake.7z"
|
||||||
DOWNLOAD_EXTRACT_TIMESTAMP ON
|
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...")
|
message(STATUS "Fetching and making available Boost...")
|
||||||
FetchContent_MakeAvailable(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})
|
set(FFMPEG_INCLUDE_PATH ${ffmpeg_SOURCE_DIR}/${FFMPEG_INCLUDE_DIR})
|
||||||
|
|
||||||
find_library(AVCODEC_LIBRARY NAMES avcodec PATHS ${FFMPEG_LIBRARY_PATH} NO_DEFAULT_PATH)
|
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)
|
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)
|
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)
|
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)
|
if(NOT AVCODEC_LIBRARY OR NOT AVFORMAT_LIBRARY OR NOT AVUTIL_LIBRARY)
|
||||||
message(FATAL_ERROR "FFmpeg 라이브러리를 찾을 수 없습니다. 다운로드 경로를 확인해주세요.")
|
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 Boost::beast)
|
||||||
target_link_libraries(${BOT_NAME} PRIVATE OpenSSL::Crypto)
|
target_link_libraries(${BOT_NAME} PRIVATE OpenSSL::Crypto)
|
||||||
target_link_libraries(${BOT_NAME} PRIVATE OpenSSL::SSL)
|
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 ${AVCODEC_LIBRARY})
|
||||||
target_link_libraries(${BOT_NAME} PRIVATE ${AVFORMAT_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})
|
target_link_libraries(${BOT_NAME} PRIVATE ${SWSCALE_LIBRARY})
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -142,4 +149,11 @@ add_custom_command(TARGET ${BOT_NAME} POST_BUILD
|
|||||||
"$<TARGET_FILE_DIR:Boost::process>"
|
"$<TARGET_FILE_DIR:Boost::process>"
|
||||||
"$<TARGET_FILE_DIR:${BOT_NAME}>"
|
"$<TARGET_FILE_DIR:${BOT_NAME}>"
|
||||||
COMMENT "Copying Boost.Process DLL/so files to output directory"
|
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"
|
||||||
|
"$<TARGET_FILE_DIR:${BOT_NAME}>"
|
||||||
|
COMMENT "Copying FFMpeg_AVCODEC DLL/so files to output directory"
|
||||||
)
|
)
|
||||||
@@ -2,9 +2,12 @@
|
|||||||
#include <boost/process.hpp>
|
#include <boost/process.hpp>
|
||||||
#include <boost/beast/http.hpp>
|
#include <boost/beast/http.hpp>
|
||||||
#include <boost/beast/ssl.hpp>
|
#include <boost/beast/ssl.hpp>
|
||||||
|
extern "C" {
|
||||||
#include <libavformat/avformat.h>
|
#include <libavformat/avformat.h>
|
||||||
|
}
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char* argv[]) {
|
||||||
|
std::cout << "FFmpeg version: " << av_version_info() << std::endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user