2017-06-02 4 views
0

J'ai construit libvpx.a et en-têtes avec MSYS (pour MinGW). Quand je suis en train de compiler un example beaucoup de références non définies à VPX membres se produit:Références non définies lors de la compilation de projet avec libvpx

g++ -m32 -static -o dist/Debug/MinGW-Windows/test1 build/Debug/MinGW-Windows/main.o -L/D/Libraries/libvpx/ -lvpx 
build/Debug/MinGW-Windows/main.o: In function `main': 
D:\Projects\CPP_test\Test1/main.cpp:107: undefined reference to `die' 
D:\Projects\CPP_test\Test1/main.cpp:109: undefined reference to `vpx_video_reader_open' 
D:\Projects\CPP_test\Test1/main.cpp:111: undefined reference to `die' 
D:\Projects\CPP_test\Test1/main.cpp:114: undefined reference to `die' 
D:\Projects\CPP_test\Test1/main.cpp:116: undefined reference to `vpx_video_reader_get_info' 
D:\Projects\CPP_test\Test1/main.cpp:118: undefined reference to `get_vpx_decoder_by_fourcc' 
D:\Projects\CPP_test\Test1/main.cpp:120: undefined reference to `die' 
D:\Projects\CPP_test\Test1/main.cpp:125: undefined reference to `die_codec' 
D:\Projects\CPP_test\Test1/main.cpp:127: undefined reference to `vpx_video_reader_read_frame' 
D:\Projects\CPP_test\Test1/main.cpp:132: undefined reference to `vpx_video_reader_get_frame' 
D:\Projects\CPP_test\Test1/main.cpp:134: undefined reference to `die_codec' 
D:\Projects\CPP_test\Test1/main.cpp:137: undefined reference to `vpx_img_write' 
D:\Projects\CPP_test\Test1/main.cpp:144: undefined reference to `die_codec' 
D:\Projects\CPP_test\Test1/main.cpp:149: undefined reference to `vpx_video_reader_close' 

Tout fait inclut, lib est lié ... Alors qu'est-ce que je fais mal? PS: Peut-être que ce n'est pas suffisant de lier le fichier libvpx.a, et j'ai aussi besoin des fichiers .c qui viennent avec les sources (si oui, je ne comprends pas ce qui est nécessaire pour le fichier .a lib)?

+0

Nous aurons besoin de vous voir 'main.cpp' ainsi –

+0

@MikeKinghan, le mot" exemple "dans ma question a un lien vers le code que j'ai essayé de construire statiquement. Peut-être que lire et écrire webm n'est pas inclus dans libvpx.a? Si c'est le cas, comment puis-je créer et lire des fichiers webm dans mon application? – Iceman

Répondre

1

Il semble que vous ayez simplement copié et collé à l'aveugle à partir de l'exemple.

Les fonctions die_codec et vpx_video_* tous proviennent de tools_common.c (https://github.com/webmproject/libvpx/blob/master/tools_common.c) et video_reader.h (https://github.com/webmproject/libvpx/blob/master/video_reader.c), que je crois ne fait pas partie de base de la libvpx sdk (voir ici: http://www.webmproject.org/docs/webm-sdk/files.html).

Pour que votre exemple fonctionne, vous devrez copier-coller ces fichiers (à la fois les fichiers .c et .h) ainsi et les inclure dans votre fichier main.cc.

+0

Je l'ai déjà compris. Je pensais que cette bibliothèque pour travailler avec WebM devrait inclure des fonctions pour lire et écrire des fichiers de ce format. Je me suis trompé ... Merci pour votre réponse! – Iceman