Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Ralph
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 6
#1

undefined reference... - C++

06.10.2010, 10:07. Просмотров 1295. Ответов 5
Метки нет (Все метки)

Добрый день.На C перешел совсем недавно,поэтому могу не знать всех тонкостей.Подскажите,в какую сторону копать для исправления следующей проблемы.
Вне всех функций объявляю struct shmemory {int max;}
Внутри функции main :
extern shmemory *memory;
...
memory=mmap(...);
При запуске gcc выдает кучу undefined reference memory во временных .o-файлах.когда же намеренно ввожу ошибку типа memory.may=,то выдает ошибки как и раньше-в файле index.c ,a не во временных .o
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2010, 10:07     undefined reference...
Посмотрите здесь:

undefined reference to `variable` - C++
Вобщем то есть заголовочный файл main.h #ifndef _MAIN_H #define _MAIN_H #include <vector> #include <windows.h> using...

undefined reference to `vtable for - C++
Вылетает эта ошибка при компиляции вот этого класса: class BrassPlus : public AcctABC { private: double maxLoan; double...

Ошибка undefined reference to - C++
При сборке выбивает ошибку: undefined reference to `Atom:: DoBCC(float, int, int, int)'. Ткните носом, пожалуйста, где ошибка. Заранее...

undefined reference to winmain@16 - C++
pomogite 4to takoi undefined reference to winmain@16? ya ya napisal metoda sortirovka viborom

GLUT: undefined reference to... - C++
#include <gl/glut.h> void Draw() { } void initialize() { } int main (int argc, char** argv) { ...

Undefined reference to `GrPlot' - C++
решил в еклипсе запустить тестовый код из инета. библиотеки вроде скачал и указал находит, а при компиляции к выдаёт кучу ошибок типа ...

undefined reference / android - C++
android 4.1.2 samsung i9300 CCTools c4android GradeBook.h

Ошибка undefined reference to - C++
main.cpp #include <locale> #include <iostream> #include <Windows.h> #include "Class.h" using namespace std; int main() { ...

Undefined reference to `auxDIBIm - C++
Здравствуйте, использую Dev C++. при компиляции проекта выдаёт ошибку Undefined reference to `auxDIBIm (на скриншоте) библиотека glaux.lib...

Problem - Undefined reference to - C++
Доброго времени суток и спасибо заранее за Вашу помощь. В качестве хобби начал изучать C++. Прочитал немного материала на сайтах и...

undefined reference to `gzdopen' - C++
Здравствуйте, уважаемые форумчане! Нужна ваша помощь. Среда - Dev-Cpp. Пытаюсь написать программу с использованием zlib. ...

Ошибка: undefined reference to `WinMain@16' - C++
Подскажите пожалуйста, что означает эта ошибка и как от нее озбавиться: Linking... ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
06.10.2010, 11:38     undefined reference... #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C
1
struct shmemory {int max;};
это во-первых,
во-вторых:
Цитата Сообщение от Ralph Посмотреть сообщение
Внутри функции main :
C
1
struct shmemory *memory;
в-третьих:
C
1
memory = malloc(sizeof(struct shmemory));
если не знаете действительно веской причины mmap() использовать...
Да и вообще - лучше выкладывайте весь код с описанием того, что он делать должен.
Ralph
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 6
06.10.2010, 13:34  [ТС]     undefined reference... #3
Код
struct shmemory

{

pid_t command_pid;
pid_t master_pid;

int max_child;

char intertext[1024];

};

...

int main (int argc,char **argv)

{

...

/* создаем область shared memory */

extern struct shmemory *memory;

a=shm_open("/mmv",O_RDWR | O_CREAT,0666);

if (a<1) {ceLog("cannot create shared memory segment",'c');exit(1);}

ftruncate(a,sizeof(struct shmemory));

memory=mmap(NULL,sizeof(struct shmemory),PROT_READ | PROT_WRITE,MAP_SHARED,a,0); /* строка номер 115*/

if (memory==MAP_FAILED) {ceLog("mmap error",'c');exit(1);}

close(a);

memory->command_pid=getpid();
Выдает:

/var/tmp//cc9hipXq.o(.text 0xb89):/usr/local/mm/index.c:115: undefined reference to 'memory'
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
06.10.2010, 18:43     undefined reference... #4
Цитата Сообщение от Ralph Посмотреть сообщение
extern struct shmemory *memory;
extern уберите.
Цитата Сообщение от Ralph Посмотреть сообщение
close(a);
закрытие файла само по себе munmap() не вызывает - какая-то у Вас неблагонадёжная конструкция получается...
Ralph
0 / 0 / 0
Регистрация: 06.10.2010
Сообщений: 6
06.10.2010, 20:18  [ТС]     undefined reference... #5
Черт,дело действительно было в extern'e
Кстати,верно ли,что при fork'e эта разделяемая память будет наследоваться ?
А вот насчет munmap не совсем понял вас:зачем же мне закрывать память,если я ею еще не пользовался,или вы имели в виду ее использование в случае ошибки ?
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.10.2010, 07:07     undefined reference... #6
extern ты применяешь, если у тебя имя memory определено в другом файле .c (в глобальной области)
Yandex
Объявления
07.10.2010, 07:07     undefined reference...
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru