Документация для target_link_libraries
не позволяет относительный путь (audioconvert.o
) быть параметром этой команды. Это должно быть либо абсолютный путь (/home/stiv2/jsoft/nv-ffmpeg/ffmpeg/libswresample/audioconvert.o
), или простое имя библиотеки (например, z
для libz.a
библиотеки).
Потому что объектный файл audioconvert.o
не является библиотекой, его нельзя указать с простым именем библиотеки . У вас нет другого выбора, кроме как указать абсолютный путь для объектных файлов.
Для указания нескольких объектных файлов в каком-либо каталоге вы можете использовать foreach
l oop:
foreach(obj audioconvert.o foo.o bar.o)
target_link_libraries(FFMPEGTest /home/stiv2/jsoft/nv-ffmpeg/ffmpeg/libswresample/${obj})
endforeach()
Фактически каждый параметр от <param>
до target_link_libraries
, который не выглядит как абсолютный путь (и не соответствует библиотеке target ), преобразуется в -l<param>
параметр для компоновщика.
Компоновщик интерпретирует этот параметр как простое имя библиотеки , а ищет файл с именем lib<param>.a
или lib<param>.so
в каталогах ссылок.
Итак, с параметром -laudioconvert.o
компоновщик ищет файл с именем libaudioconvert.o.a
- очевидно, это не то, что вам нужно.