C++ projemde bir fft yapmak ve daha sonra bir görüntü olarak göstermek istiyorum. Fft yapmak için fftw ++ kullanıyorum ve görüntüyü görüntülemek için CImg-kütüphanesini kullanmak istedim. Böylece here'dan demo projesi ile başladım. Onu derlerken, her şey çalışır. En kısa sürede ben CImg-header ekledikçe, buCImg ve fftw ++ kombinasyonu
test.cpp: In function ‘int main()’:
test.cpp:18:12: error: ‘f’ was not declared in this scope
Complex *f=ComplexAlign(n);
Dosyam
#include "fftw++.h"
#include "CImg.h"
// Compile with:
// g++ -I .. -fopenmp example0.cc ../fftw++.cc -lfftw3 -lfftw3_omp
//using namespace std;
//using namespace utils;
//using namespace fftwpp;
//using namespace cimg_library;
int main()
{
fftwpp::fftw::maxthreads=get_max_threads();
std::cout << "1D complex to complex in-place FFT, not using the Array class"
<< std::endl;
unsigned int n=4;
Complex *f=utils::ComplexAlign(n);
fftwpp::fft1d Forward(n,-1);
fftwpp::fft1d Backward(n,1);
for(unsigned int i=0; i < n; i++) f[i]=i;
std::cout << "\ninput:" << std::endl;
for(unsigned int i=0; i < n; i++) std::cout << f[i] << std::endl;
Forward.fft(f);
std::cout << "\noutput:" << std::endl;
for(unsigned int i=0; i < n; i++) std::cout << f[i] << std::endl;
Backward.fftNormalized(f);
std::cout << "\ntransformed back:" << std::endl;
for(unsigned int i=0; i < n; i++) std::cout << f[i] << std::endl;
utils::deleteAlign(f);
}
benziyor ve
g++ -I .. -fopenmp test.cpp ../fftw++.cc -lfftw3 -lfftw3_omp
Benim g ++ sürüm 4.8 olduğu derlendi hata ile başarısız olur. 5. Complex.h
başlıklı eklemek de işe yaramıyor. Her iki kütüphaneyi birleştirmek için ne yapabilirim?
Düzenleme: daha fazla araştırma hataları da fftw++
-package sonuçlarından kütüphane Complex.h
birleştirerek derleme sorunların bir sürü C-kütüphanesi complex.h
ve CImg.h
sonuçlarını kullanarak, C++ 'dan sadece complex
-Include kullanılabileceğini göstermektedir CImg.h
-include dosyasıyla birlikte. Sebep: Bilinmeyen şu ana kadar.
Başlamak için ad-soyadını kullanarak tüm bu çok ağır kullanımdan kurtulun ... –
@PaulR: Sabit, orijinaline olabildiğince yakın kalmak için daha önce bıraktım. Hala aynı sorun –
Benim tahminim Kompleks'in birden fazla yerde tanımlanmış olmasıydı, ama ben CImg veya fftw ++ ile * au fait * değilim. –