THMMY.gr

Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα => C / C++ / C# => Topic started by: johnny_d on April 30, 2012, 03:30:58 am



Title: C - πρόβλημα με compile
Post by: johnny_d on April 30, 2012, 03:30:58 am
Λοιπόν!

Προσπαθώ να κάνω compile ένα πρόγραμμα που χρησιμοποιεί ffmpeg και τις βιβλιοθήκες του (libavformat, libavcodec). Οπότε κάνω include τα σχετικά αρχεία. Όμως στο compile έχω linker errors σε αρκετές συναρτήσεις.

Ενδεικτικά:
Code:
[Linker error] undefined reference to `av_register_all' 

Χρησιμοποιώ Dev C++.

Μετά από "σχετική" έρευνα διάβασα ότι ίσως οφείλεται στον compiler με προτεινόμενες λύσεις κάτι σαν αυτό:

Code:
#ifdef __cplusplus
 extern "C" {
 #endif
 
#include <avcodec.h>
#include <avformat.h>

#ifdef __cplusplus
 }
 #endif

Αλλά δεν είχε αποτέλεσμα...

Έχει κανείς καμιά ιδέα να προτείνει?


Title: Re: C - πρόβλημα με compile
Post by: johnny_d on April 30, 2012, 16:46:27 pm
utr


Title: Re: C - πρόβλημα με compile
Post by: Issle on April 30, 2012, 18:24:02 pm
Το Linking δεν εξαρτάται από τα αρχεία που κάνεις include ( headers ) μόνο. Κάθε βιβλιοθήκη περιέχει συνήθως τα header της και το implementation. Όταν δεν έχεις implementation σε ξεχωριστά files αρκεί και μόνο το including αλλά όταν η υλοποίηση του header βρίσκεται σε διαφορετικά αρχεία ( libraries ) πρέπει στο compile command να τα προσθέσεις για να ξέρει πού να τα βρει ( ο linker ).


Title: deleted
Post by: BOBoMASTORAS on April 30, 2012, 19:37:14 pm
deleted


Title: Re: C - πρόβλημα με compile
Post by: johnny_d on May 04, 2012, 04:27:53 am
Ευχαριστώ για τις απαντήσεις! :)

Έβγαλα γενικά άκρη..Ίσως επανέλθω με τπτ καινούριο..!