Перейти к содержанию

pioner

Members
  • Постов

    19
  • Зарегистрирован

  • Посещение

    Никогда

Весь контент pioner

  1. Всё оказалось очень просто: функция, в которой творилось это безобразие, возвращала структуру размером примерно 5 Мб! Я стал передавать эту структуру по указателю - и ошибка исчезла.
  2. EvilShadow писал(а) Tue, 27 February 2007 20:12 Поставьте третий gcc. Многое из того, что собирается в третьем, не собирается в четвертом. Пробовал, но не смог.
  3. Набираете man 2 open, там написано - нужны #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> Вообще, по всем стандартным С-функциям в манах есть заголовки, которые для них нужны.
  4. При запуске программы происходит segmentation fault. Выдержка из сеанса gdb: Breakpoint 1, main (argc=8, argv=0x7fffffd590c8) at podgon4.c:146 146 data_init(fits_massiv,dataptr,max_mag,BINSIZE,n,n,sr[0],sr[1 ]); (gdb) x/a fits_massiv 0x7fffff8931d0: 0x773ea0 (gdb) print dataptr $1 = (FILE *) 0x7737e0 (gdb) s Program received signal SIGSEGV, Segmentation fault. 0x0000000000403926 in data_init (fits_massiv=Cannot access memory at address 0x7ffffee45b68 ) at read_files.c:771 771 data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){ (gdb) x/a fits_massiv Cannot access memory at address 0x7ffffee45b68 (gdb) print dataptr Cannot access memory at address 0x7ffffee45b60 Суть в следующем: перед самым вызовом функции data_init проверяем значения указателей fits_massiv и dataptr - всё нормально, под них память выделена и доступна. Но как только мы вызвали эту функцию, значения указателей становятся новыми, отличающимися на 8 (всегда, я проверял) и память в том месте, куда они указывают, недоступна. Кто виноват и что делать? Fedora Core 4 gcc 4.0.0 gdb 6.3.0.0 Кстати, под другой конфигурацией (SuSe/gcc3.3) этой ошибки не было. Как проверить, может быть, это глюк сборки gcc под мою систему?
  5. Я разобрался. Если используешь родовую (template) функцию, то нужно её не прилинковывать, а включать её исходный текст (#include).
  6. Пишу программу с родовыми функциями/классами. Вначале я в файл с функцией main (файл conv.cpp) включал (include) .cpp файл, в котором объявлены и описаны родовые классы/функции - всё прекрасно работало. Затем я решил сделать всё это цивильно, и стал сначала компилировать объектники, и прилинковывать их к main только потом (т. е. включал только заголовки, где функции объявлены, но не описаны). Тогда выдаётся ошибки: $g++ conv.cpp wfff.o wffa.o /tmp/ccbhiHFE.o(.text+0x146): In function `main': conv.cpp: undefined reference to `detctype(short)' /tmp/ccbhiHFE.o(.text+0x1f2):conv.cpp: undefined reference to ... /tmp/ccbhiHFE.o(.text+0x38a):conv.cpp: undefined reference to `Image<double>::~Image()' collect2: ld returned 1 exit status (вместо точек ещё штук 5 undefined reference) Причём сначала функция detctype была не родовой. Он её находил. Я сделал её родовой - и он перестал её находить (эти ошибки - после этого преобразования). ОС Fedora Core 4, компилятор gcc 4.0.0
  7. поробуй gcc -ansi или что-нибудь подобное с опциями gcc. В общем, man gcc.
  8. argv[2] имеет тип не char, а char*, т. е. строка. для преобразования чисел из строки есть стандартная функция atoi. man atoi и вперёд!
  9. Доброго времени суток! Думаю, не только у меня при усложнении дерева классов в tc возникает сабжевый вопрос. Если кто-нибудь его красиво и эффективно решил, просьба поделиться опытом. Имхо, все, кто может ответить на этот вопрос, не нуждаются в рассказах, что это и как работает, но тем не менее приведу несколько замечаний, которые могут помочь в размышлениях. Заодно прошу меня поправить, если что-то пропущу или скажу неточно. Итак 1. Набор правил управления трафиком строится в виде дерева. Узлами его являются пары класс/присоединенная к нему дисциплина. Каждая дисциплина (речь не идет о простейших бесклассовых дис
  10. White_Mouse писал(а) Втр, 06 Июня 2006 22:58 pioner писал(а) Втр, 06 Июня 2006 21:43 Да, кстати, у меня при подключении флешки вылезает следующее: Невозможно подсоединить выбранный том. mount: /dev/sdb1 already mounted or /media/usbdisk busy mount: according to mtab, /dev/sdb1 is already mounted on /media/usbdisk Откуда это у вас вылезает? Какой вы пользуетесь графической средой? Каким дистрибутивом? Скорее всего, это вопрос к утилите, которая автоматически монтирует флэшку. Цитата: Но потом всё работает нормально. Как сделать так, чтобы он не ругался? И как по-человечески отключить флешку? А то я её выдёргиваю, наверно, это неправильно. Чтобы по человечески ее отключить надо ее "отмонтировать" (unmount), что делается командой umount. За подробностями ее использования обращайтесь к man umount. В КДЕ отмонтировать флэшку можно также кликнув правой кнопкой на значке устройства (если в Konqueror, например, перейти на system:/media) и выбрав в меню "Безопасно отключить". Fedora 4, GNOME. С umount разобрался, спасибо. А как понять, кто автоматически монтирует флешку?
  11. Сканер - Color-page Vivid pro II, система Fedora Core 4. Производитель сказал, что этот сканер работает с SANE Plustek-backend как Optic Pro 9636T (подключается через LPT). Я установил SANE backends 1.0.17. Но scanimage -L, sane-find-scanner, sane-find-scanner -p его не находят во включенном состоянии (под рутом тоже). Что делать?
  12. Да, кстати, у меня при подключении флешки вылезает следующее: Невозможно подсоединить выбранный том. mount: /dev/sdb1 already mounted or /media/usbdisk busy mount: according to mtab, /dev/sdb1 is already mounted on /media/usbdisk Но потом всё работает нормально. Как сделать так, чтобы он не ругался? И как по-человечески отключить флешку? А то я её выдёргиваю, наверно, это неправильно.
  13. ASR(RainMan) писал(а) Втр, 23 Августа 2005 17:11 я тут прочитал, что в fc3 и fc4 флешки монтируются автоматом, типа как CD-диски,т.е. подключаешь - и они в иксах на рабочем столе появляются. Что-то у меня не получается, подскажите, где копнуть? ручками монтируюся нормально У меня в гноме, федоре 4, флешка появляется автоматически только в файловой системе, но не на рабочем столе.
  14. Хоть я и простой пользователь, но, пожалуйста, не пишите таких названий тем! Ничего же не понятно из названия!
  15. Хоть я и простой пользователь, но, пожалуйста, не пишите таких названий тем! Ничего же не понятно из названия!
  16. На одном диске была вин ХР, купил другой, поставил туда GRUB, FC4. Как сделать, чтобы можно было выбирать ОС в меню загрузчика (граба), а не БИОСА?
  17. Неправда, в виндах всё нормально со сканером - когда хочешь, тогда и включаешь. Правда, у меня другой сканер Color-Page vivid-pro II. Да, кстати, не подскажете, где под него найти дрова (хотя бы сайт). под Fedora Core 4.
  18. Только что установил Fedora Core 4 и не обнаружил там компилятора С. Я скачал gcc отсюда: ftp://ftp.gnu.org/gnu/gcc/gcc-3.2.3/ файл gcc-core-3.2.3.tar.gz Распаковал его. Что дальше делать, чтобы компилятор заработал? Как вообще устанавливать программы в Linux?
×
×
  • Создать...