Итак, я работаю с более старым кодом, который написал некоторое время назад. Первоначально я собирался перенести его на Windows, добился определенного успеха, но быстро столкнулся с другими проблемами и решил вернуться к среде * nix. Исходный код скомпилирован и работает с первой попытки.
Я использую Ubuntu 11.10 и выбрал Eclipse в качестве своей IDE. При компиляции и запуске исходного кода все нормально. Теперь я установил библиотеку FFTW ([fftw.org] [1]) и не могу создать что-либо, что использует библиотеку.
Я установил библиотеку, используя aptitude в терминале:
sudo apt-get install libfftw3-dev libfftw3-doc
Библиотека определенно существует:
~$ g++ -lfftw3
/usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
И я добавил «fftw3» в список свойств моего проекта-> C ++ Linker-> Libraries в Eclipse.
Файл заголовка найден просто отлично.
Когда я иду на компиляцию, каждый отдельный тип данных, определенный в библиотеке, не может быть определен, поэтому, по сути, компилятор понятия не имеет, что делать.
Я немного озадачен ...
Вот одна из ошибок (все они идентичны):
Линия:
fftw_real a[M][N];
Ошибка:
error: ‘fftw_real’ was not declared in this scope
Я не уверен, что еще можно попробовать. Ваша помощь и опыт очень ценятся. Заранее спасибо.
РЕШИТЬ! Вот решение
Для всех, кто работает с СТАРЫМ КОДОМ и неактивным, ищет в Google и StackOverflow решение аналогичной проблемы, учитесь на моей глупой ошибке, вместо того, чтобы делать свою собственную.
Ключевая фраза здесь старый код . Мой код был написан для FFTW 2, но я использую версию 3 библиотеки, которая имеет совершенно другой интерфейс. Мне пришлось обновить весь мой код, который использует библиотеку, тогда все работало как обычно.
Doh! Как глупо Я надеюсь, что кто-то из Google найдет это полезным когда-нибудь.
Спасибо, Дитмар Кюль, за то, что помог мне понять, что случилось. Я ценю, что вы нашли время, чтобы установить библиотеку и покопаться; это было очень мило с вашей стороны.