[Libav-user] Problems with time.h in ffmpeg util libary
Hannes Wuerfel
hannes.wuerfel at student.hpi.uni-potsdam.de
Fri Nov 23 00:25:49 CET 2012
Am 22.11.2012 23:52, schrieb Carl Eugen Hoyos:
> Hannes Wuerfel <hannes.wuerfel at ...> writes:
>
>> is there a workaround to avoid name conflicts with
>> the standard c time.h file?
>> It is a problem when using some other libs in
>> the project where ffmpeg is used.
> Could you elaborate?
> (So far, nobody could explain how this can be a
> problem.)
>
> Carl Eugen
>
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user
For example:
// ffmpeg
extern "C" {
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavutil/opt.h>
#include <libavutil/audioconvert.h>
#include <libavutil/common.h>
#include <libavutil/imgutils.h>
#include <libavutil/mathematics.h>
#include <libavutil/samplefmt.h>
}
// opencv
#include <cv.h>
#include <highgui.h>
#include <cvaux.h>
#include <cxcore.h>
causing:
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(18): error C2039: 'clock_t': Ist kein Element von
'`global namespace''
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(18): error C2873: 'clock_t': Das Symbol kann nicht
in einer using-Deklaration verwendet werden
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(20): error C2039: 'asctime': Ist kein Element von
'`global namespace''
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(20): error C2873: 'asctime': Das Symbol kann nicht
in einer using-Deklaration verwendet werden
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(20): error C2039: 'clock': Ist kein Element von
'`global namespace''
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(20): error C2873: 'clock': Das Symbol kann nicht
in einer using-Deklaration verwendet werden
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(20): error C2039: 'ctime': Ist kein Element von
'`global namespace''
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(20): error C2873: 'ctime': Das Symbol kann nicht
in einer using-Deklaration verwendet werden
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(21): error C2039: 'difftime': Ist kein Element von
'`global namespace''
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(21): error C2873: 'difftime': Das Symbol kann
nicht in einer using-Deklaration verwendet werden
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(21): error C2039: 'gmtime': Ist kein Element von
'`global namespace''
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(21): error C2873: 'gmtime': Das Symbol kann nicht
in einer using-Deklaration verwendet werden
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(21): error C2039: 'localtime': Ist kein Element
von '`global namespace''
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(21): error C2873: 'localtime': Das Symbol kann
nicht in einer using-Deklaration verwendet werden
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(22): error C2039: 'mktime': Ist kein Element von
'`global namespace''
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(22): error C2873: 'mktime': Das Symbol kann nicht
in einer using-Deklaration verwendet werden
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(22): error C2039: 'strftime': Ist kein Element von
'`global namespace''
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(22): error C2873: 'strftime': Das Symbol kann
nicht in einer using-Deklaration verwendet werden
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(22): error C2039: 'time': Ist kein Element von
'`global namespace''
2>C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\ctime(22): error C2873: 'time': Das Symbol kann nicht in
einer using-Deklaration verwendet werden
2>d:\lib\opencv_2.4\build\include\opencv2\flann\timer.h(47): error
C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'startTime'
2>d:\lib\opencv_2.4\build\include\opencv2\flann\timer.h(47): error
C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis:
"default-int" wird von C++ nicht unterstützt.
2>d:\lib\opencv_2.4\build\include\opencv2\flann\timer.h(47): error
C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis:
"default-int" wird von C++ nicht unterstützt.
2>d:\lib\opencv_2.4\build\include\opencv2\flann\timer.h(69): error
C2065: 'startTime': nichtdeklarierter Bezeichner
2>d:\lib\opencv_2.4\build\include\opencv2\flann\timer.h(69): error
C3861: "clock": Bezeichner wurde nicht gefunden.
2>d:\lib\opencv_2.4\build\include\opencv2\flann\timer.h(77): error
C2065: 'clock_t': nichtdeklarierter Bezeichner
2>d:\lib\opencv_2.4\build\include\opencv2\flann\timer.h(77): error
C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'stopTime'
2>d:\lib\opencv_2.4\build\include\opencv2\flann\timer.h(77): error
C2065: 'stopTime': nichtdeklarierter Bezeichner
2>d:\lib\opencv_2.4\build\include\opencv2\flann\timer.h(77): error
C3861: "clock": Bezeichner wurde nicht gefunden.
2>d:\lib\opencv_2.4\build\include\opencv2\flann\timer.h(78): error
C2065: 'stopTime': nichtdeklarierter Bezeichner
2>d:\lib\opencv_2.4\build\include\opencv2\flann\timer.h(78): error
C2065: 'startTime': nichtdeklarierter Bezeichner
2>d:\lib\opencv_2.4\build\include\opencv2\flann\timer.h(78): error
C2065: 'CLOCKS_PER_SEC': nichtdeklarierter Bezeichner
opencv2's timer.h includes <time.h>
Strange:
When I just code:
// ffmpeg
extern "C" {
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavutil/opt.h>
#include <libavutil/audioconvert.h>
#include <libavutil/common.h>
#include <libavutil/imgutils.h>
#include <libavutil/mathematics.h>
#include <libavutil/samplefmt.h>
}
#include <time.h>
it works fine, but using <ctime> instead causing the same VC errors as
above.
More information about the Libav-user
mailing list