Страница 1 из 1

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

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

подключены

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

#include<iostream.h>
#include <stdlib.h>
using namespace std;
в чем может быть проблема?

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

Добавлено: 06 июл 2009, 18:51
Romeo
Можно немного подробней? Если код стесняешься выложить, то хотя бы назови операционную система и компилятор.

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

Добавлено: 06 июл 2009, 19:12
chturm
Вот фраглет кода на который ругается компилятор:

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

   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

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

Добавлено: 06 июл 2009, 21:34
rrrFer
возможно проблема в том что он не может найти 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

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

Добавлено: 06 июл 2009, 21:50
Romeo
А вообще лучше всего пользуйся сочетанием srand(time(NULL)) (в начале один раз) и затем rand() без параметров и будет тебе счастье.

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

Добавлено: 06 июл 2009, 23:51
chturm
Все заработало)
Спасибо!))