GOOD link
g++ -o vmafossexec_cuda src/run_vmaf.cpp.o ../../../../libframereader/libframereader.a -L/data/app/bili_xcode_vmaf_ffmpeg/build/lib -L/usr/local/lib -L/data/app/bili_xcode_vmaf_ffmpeg/build/lib -lavfilter -lm -lvmaf -lstdc++ -lpthread -lm -pthread -lm -ldl -lnppig -lnppicc -lnppc -lnppidei -ldl -lavformat -lm -lz -lavcodec -pthread -lm -lz -lm -ldl -lswresample -lm -lswscale -lm -lavutil -pthread -lm -ldl -lm -ldl -L. -lvmaf_cuda -L../../ptools -lptools -lpthread -L/usr/local/cuda/lib64/ -lcudart -ldl -lnpps
g++ -o vmafossexec_cuda src/run_vmaf.cpp.o /data/app/bili_xcode_vmaf_ffmpeg/build/lib/libframereader.a -L/data/app/bili_xcode_vmaf_ffmpeg/build/lib -lavformat -lm -lz -lavcodec -pthread -lm -lz -lm -ldl -lswresample -lm -lswscale -lm -lavutil -pthread -lm -ldl -lm -ldl -lnpps -lnppig -ldl -lcudart -L. -L../../ptools -lptools -lpthread -L/usr/local/cuda/lib64/ -lcudart -ldl -lnpps
发现编译的顺序很重要
$(LIB_FR_BUILD_PATH)/lib/libframereader.a \
$(LIB_FR_BUILD_PATH)/lib/libavfilter.a \
$(LIB_FR_BUILD_PATH)/lib/libavformat.a \
$(LIB_FR_BUILD_PATH)/lib/libswresample.a \
$(LIB_FR_BUILD_PATH)/lib/libswscale.a \
$(LIB_FR_BUILD_PATH)/lib/libavcodec.a \
$(LIB_FR_BUILD_PATH)/lib/libavutil.a \
-lcudart -lnpps -lnppig -lnppig -lnppicc -lnppc -lnppidei \
-lpthread -lz -lm -ldl