gpt4 book ai didi

linux - 使用 vcpkg 安装 ffmpeg

转载 作者:行者123 更新时间:2023-12-04 23:19:17 36 4
gpt4 key购买 nike

我已经安装了ffmpeg使用 vcpkg install ffmpeg当我在我的 cmake 项目中包含依赖项时,如下所示:

find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h)
find_library(AVCODEC_LIBRARY avcodec)
find_path(AVFORMAT_INCLUDE_DIR libavformat/avformat.h)
find_library(AVFORMAT_LIBRARY avformat)
find_path(AVUTIL_INCLUDE_DIR libavutil/avutil.h)
find_library(AVUTIL_LIBRARY avutil)
find_path(AVDEVICE_INCLUDE_DIR libavdevice/avdevice.h)
find_library(AVDEVICE_LIBRARY avdevice)

target_link_libraries(${TARGET_NAME} PRIVATE
${AVCODEC_LIBRARY} ${AVFORMAT_LIBRARY} ${AVUTIL_LIBRARY} ${AVDEVICE_LIBRARY}
)
我的 windows 构建工作正常,但是,在 linux 上,我得到了错误:
[29/29] Linking CXX shared library libjni.so
2021-11-14T12:38:02.510164800Z FAILED: libjni.so
2021-11-14T12:38:02.510171600Z : && /usr/bin/g++-11 -fPIC -O3 -DNDEBUG -shared -Wl,-soname,libjni.so -o libjni.so CMakeFiles/jni.dir/src/jni.cpp.o CMakeFiles/jni.dir/src/core/audio.cpp.o CMakeFiles/jni.dir/src/core/files.cpp.o CMakeFiles/jni.dir/src/core/fs/file_utils.cpp.o CMakeFiles/jni.dir/src/core/spectrogram.cpp.o CMakeFiles/jni.dir/src/core/utils.cpp.o -L/usr/lib/gcc/x86_64-linux-gnu/10 -Wl,-rpath,/root/build/Release/_deps/fmt-build /root/vcpkg/installed/x64-linux/lib/libfftw3f.a _deps/fmt-build/libfmt.so.8.0.1 _deps/xxhash-build/libxxhash.a /root/vcpkg/installed/x64-linux/lib/libavcodec.a /root/vcpkg/installed/x64-linux/lib/libavformat.a /root/vcpkg/installed/x64-linux/lib/libavutil.a /root/vcpkg/installed/x64-linux/lib/libavdevice.a _deps/kistream_proto_cpp-build/libgenerated_srcs.a -lm -Wl,--as-needed /root/vcpkg/installed/x64-linux/lib/libprotobuf.a -lpthread && :
2021-11-14T12:38:02.510185200Z /usr/bin/ld: /root/vcpkg/installed/x64-linux/lib/libavcodec.a(h264_intrapred_10bit.o): warning: relocation against `ff_pw_512' in read-only section `.text'
2021-11-14T12:38:02.510187600Z /usr/bin/ld: /root/vcpkg/installed/x64-linux/lib/libavcodec.a(vc1dsp_mmx.o): relocation R_X86_64_PC32 against symbol `ff_pw_9' can not be used when making a shared object; recompile with -fPIC

最佳答案

我认为,您的问题与位置无关代码有关。如果通过在 vcpkg 中提供 -fPIC 选项进行编译,则可以解决此问题。
你可以看看this vcpkg repo 的 github 问题。他们举了一个例子,说明如何向 vcpkg 的端口 CMake 文件添加编译器选项。

关于linux - 使用 vcpkg 安装 ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69964899/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com