First, I want to apologize for double-posting. I haven't been
subscribed to the libav-user mailing list, and I was until VERY
recently ( few minutes ago) unaware of its existence, so I sent this
one to the ffmpeg-user list, even though that felt kind of wrong. Now
I know why, and such things will not happen again! But in an effort
to have my message viewed by the correct list group, I have chanced
reposting, and I sincerely apologize that I cannot remove the original
post from the ffmpeg-user list.
I checked out the most recent (as of this message) version of ffmpeg,
configured, made, and installed it ( /usr/local/* ). In my XCode
project, I have the header and library search paths pointed to "/usr/
local/include" and "/usr/local/lib" respectively. Under "Other Linker
Flags" I have included "-lavformat -lavcodec -lavutil -lz" plus some
guichan and SDL libraries, which link just fine thus far.
When I build the project, it sees the headers and compiles fine, but
when it goes to link I get all sorts of errors:
~/Documents/Programming/Vided/build/Vided.build/Release/Vided.build/
Objects-normal/i386/Vided.LinkFileList -framework Cocoa -framework
OpenGL -framework SDL_mixer -framework SDL -framework SDL_image -arch
i386 -mmacosx-version-min=10.4 -lavformat -lavcodec -lavutil -lz -
lguichan -lguichan_sdl -lguichan_opengl -lmp3lame -isysroot /Developer/
SDKs/MacOSX10.4u.sdk
Undefined symbols:
"avpicture_get_size(int, int, int)", referenced from:
VE_Media::VE_Media(char*)in VE_Media.o
"avpicture_fill(AVPicture*, unsigned char*, int, int, int)",
referenced from:
VE_Media::VE_Media(char*)in VE_Media.o
"av_open_input_file(AVFormatContext**, char const*, AVInputFormat*,
int, AVFormatParameters*)", referenced from:
VE_Media::VE_Media(char*)in VE_Media.o
"sws_getContext(int, int, int, int, int, int, int, SwsFilter*,
SwsFilter*, double*)", referenced from:
VE_Media::VE_Media(char*)in VE_Media.o
"avcodec_open(AVCodecContext*, AVCodec*)", referenced from:
VE_Media::VE_Media(char*)in VE_Media.o
VE_Media::VE_Media(char*)in VE_Media.o
"avcodec_flush_buffers(AVCodecContext*)", referenced from:
VE_Media::thread_func() in VE_Media.o
VE_Media::thread_func() in VE_Media.o
"sws_scale(SwsContext*, unsigned char**, int*, int, int, unsigned
char**, int*)", referenced from:
VE_Media::getNextVideoFrame() in VE_Media.o
VE_Media::VE_Media(char*)in VE_Media.o
"av_dup_packet(AVPacket*)", referenced from:
packet_queue_put(PacketQueue*, AVPacket*) in VE_Media.o
"av_read_frame(AVFormatContext*, AVPacket*)", referenced from:
VE_Media::VE_Media(char*)in VE_Media.o
VE_Media::VE_Media(char*)in VE_Media.o
VE_Media::thread_func() in VE_Media.o
VE_Media::thread_func() in VE_Media.o
VE_Media::thread_func() in VE_Media.o
VE_Media::thread_func() in VE_Media.o
VE_FrameServe::getNextFrame(AVFormatContext*, AVPacket*)
in VE_FrameServe.o
"av_find_stream_info(AVFormatContext*)", referenced from:
VE_Media::VE_Media(char*)in VE_Media.o
"av_freep(void*)", referenced from:
VE_Media::thread_func() in VE_Media.o
VE_Media::thread_func() in VE_Media.o
"avcodec_alloc_frame()", referenced from:
VE_Media::VE_Media(char*)in VE_Media.o
VE_Media::VE_Media(char*)in VE_Media.o
"av_malloc(unsigned int)", referenced from:
packet_queue_put(PacketQueue*, AVPacket*) in VE_Media.o
"avcodec_decode_video(AVCodecContext*, AVFrame*, int*, unsigned char
const*, int)", referenced from:
VE_Media::getNextVideoFrame() in VE_Media.o
VE_Media::VE_Media(char*)in VE_Media.o
VE_Media::thread_func() in VE_Media.o
VE_FrameServe::decodeVideo(AVCodecContext*, AVFrame*, int*,
AVPacket*) in VE_FrameServe.o
"dump_format(AVFormatContext*, int, char const*, int)", referenced
from:
VE_Media::VE_Media(char*)in VE_Media.o
"av_seek_frame(AVFormatContext*, int, long long, int)", referenced
from:
VE_Media::thread_func() in VE_Media.o
"avcodec_decode_audio2(AVCodecContext*, short*, int*, unsigned char
const*, int)", referenced from:
VE_Media::getNextAudio(unsigned char*, int)in VE_Media.o
VE_FrameServe::decodeAudio(AVCodecContext*, short*, int*,
AVPacket*)in VE_FrameServe.o
"av_free(void*)", referenced from:
packet_queue_get(PacketQueue*, AVPacket*, int) in VE_Media.o
"av_register_all()", referenced from:
_SDL_main in main.o
"avcodec_find_decoder(CodecID)", referenced from:
VE_Media::VE_Media(char*)in VE_Media.o
VE_Media::VE_Media(char*)in VE_Media.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
These look to me like it cannot find the symbols for the listed
functions within the libraries that I built and installed.
I will admit that this project was started over a year ago and I'm
just now dredging it up to try and get it working again, and so some
things may have been changed, including the version of XCode in use
since the last time I opened this project. So does anyone know of
somewhere else I should be checking or doing something different to
get this to link correctly?
-- Scott
_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user