ultimate++ és az opencv, fftw......

 ( emberk | 2010. június 25., péntek - 10:38 )

Sziasztok!

Vagy 4-5 éve írtam egy egész nagy lélegzetvételű programot ultimatepp-al, amiben volt egy kis képelemzés és mest int, azóta rájöttem, hogy amit megírtam az gyak benne van az fftw3-ban és az opencv-ben sokkal jobban megírva. Arra gondolta, hogy beleraknám, hogy a konzolos programomhoz legyen egy kis minimális gui, Ne kelljen egy kilóméteres paraméterláncot hozzáraknom a parancshoz, és gnupluttal megjelenítenem stb. De hiába rakom bele a függvények legalapabb dolgait is, akár egy header-t is, idiótábbnál idiótább hibaüzeneteket kapok. Az írás végén egy lista. mintaként. Pedig 2 include állományt helyeztem csak el a kódban.

2. Az is jó lenne, ha valahogy gnuplot-os hívásokat be tudnék rakni a programba, ne kelljen skálázgatnom táblázatokat konvertálnom.......

Előre is köszönök minden építő jelegű hozzászólást.

A hibaüzenet:
MIndössze beraktam 2 include állományt:
#include >opencv/cxcore.h<
#include >opencv/cv.h<

Erre ez a marhaság jön.
/usr/include/opencv/cxtypes.h:177:5: error: reference to ‘int64’ is ambiguous
/usr/include/opencv/cxtypes.h:149:17: error: candidates are: typedef int64_t int64’
/usr/include/opencv/cxtypes.h:299:30: error: ‘union Cv64suf’ has no member named ‘u’
/usr/include/opencv/cxtypes.h: At global scope:
/usr/include/opencv/cxtypes.h:306:9: error: reference to ‘uint64’ is ambiguous
/usr/include/opencv/cxtypes.h:150:18: error: candidates are: typedef uint64_t uint64
/home/ek/upp/uppsrc/Core/Defs.h:241:28: error: typedef long long unsigned int Upp::uint64
/usr/include/opencv/cxtypes.h:306:9: error: ‘uint64’ does not name a type
/usr/include/opencv/cxtypes.h:308:11: error: ‘CvRNG’ does not name a type
/usr/include/opencv/cxtypes.h:315:31: error: ‘cvRandInt’ declared as an ‘inline’ variable
/usr/include/opencv/cxtypes.h:315:31: error: ‘CvRNG’ was not declared in this scope
/usr/include/opencv/cxtypes.h:315:38: error: ‘rng’ was not declared in this scope
/usr/include/opencv/cxtypes.h:316:1: error: expected ‘,’ or ‘;’ before ‘{’ token
/usr/include/opencv/cxtypes.h:324:30: error: ‘cvRandReal’ declared as an ‘inline’ variable
/usr/include/opencv/cxtypes.h:324:30: error: ‘CvRNG’ was not declared in this scope
/usr/include/opencv/cxtypes.h:324:37: error: ‘rng’ was not declared in this scope

/home/ek/upp/uppsrc/Core/Defs.h:240:28: error: typedef long long int Upp::int64

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

s/</&lt;/g
s/>/&gt;/g

or PasteBin. Please.

Egyebkent megprobalkoznek egy stdint.h include-olasaval.
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Az stdin.h az ok, az megy. A html-he pedig analfabéta vagyok úgyhogy a kódok közé illesztve amit mutattál:

s//>/g

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.

dupláztam, töröltem

Sajnos az include-ok értéke lemaradt.
A probléma egyébként valószínűleg az, hogy az int64 típust mindkét header definiálja egymástól függetlenül.
Szerintem a megoldás valószínűleg az lesz, hogy Upp névteret külön használod, azaz kihagyod a "using namespace Upp;" sort és az Upp-s osztályok elé odaírod a névteret (Upp::).

Az is megoldás lehet, hogy csinálsz egy wrappert a nem Upp-s librarykhoz.

Ekkor arra kell figyelni, hogy a wrappert BLITZ hagyja ki:
//#BLITZ_PROHIBIT
sor kell a header fájl elejére.

Nézz rá az Upp pluginek forrására, talán az a legjobb, ha C++ wrappert írsz a C-s libekhez és akkor máshol is könnyen felhasználhatók.

Olyat még nem csináltam, de megpróbálom. Egyébként én is erre gondoltam, hogy kihagyom a gloális névtér beállítást, aztán rakom ki a sok Upp::-okat

------
3 fajta matematikus létezik. Aki tud számolni, és aki nem.