не определяется функция rand_r

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
chturm
Сообщения: 3
Зарегистрирован: 06 июл 2009, 15:02

собственно при компиляции все норм,а программа не может запуститься
undefined reference to `rand_r'

подключены

Код: Выделить всё

#include<iostream.h>
#include <stdlib.h>
using namespace std;
в чем может быть проблема?
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Можно немного подробней? Если код стесняешься выложить, то хотя бы назови операционную система и компилятор.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
chturm
Сообщения: 3
Зарегистрирован: 06 июл 2009, 15:02

Вот фраглет кода на который ругается компилятор:

Код: Выделить всё

   int k = 8;
   int arr[n] [k];
	for (int i = 0; i < n; i++)
   for (int j = 0; j < k; j++)
		arr[i] [j] = 0 + rand_r()%2;           
		
	std::cout<<"isxodnbiyi signal=";
	cout<<std::endl;
	
   for (int i = 0; i < n; i++)               
	for (int j = 0; j < k; j++)
		std::cout<<arr[i] [j]<<" ";
		cout<<std::endl;
		
   int a = 0 + rand_r()%(n-7); 
ОС : XP
Компилятор : gcc
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

возможно проблема в том что он не может найти rand_r() т.е. без параметров как вы его вызываете. Вот тут: http://www.sbras.ru/cgi-bin/www/unix_he ... -man?srand про него написано, а именно int rand_r(unsigned *ctx);
Вот тут есть пример: http://www.linux.org.ru/view-message.jsp?msgid=3145415
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

А вообще лучше всего пользуйся сочетанием srand(time(NULL)) (в начале один раз) и затем rand() без параметров и будет тебе счастье.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
chturm
Сообщения: 3
Зарегистрирован: 06 июл 2009, 15:02

Все заработало)
Спасибо!))
Ответить