Я работаю над MINIX 3. Я изменил планировщик процессов и теперь хочу провести там небольшое тестирование.
Проблема в том, что когда я хочу использовать double
, я получаю сообщение об ошибке. Интересно то, что если я объявляю и инициализирую double variable
в глобальном классе в классе, это не показывает ошибку, но когда я хочу использовать тот же самый double variable
внутри метода и пытаюсь скомпилировать MINIX 3 (версия 3.1.6 ) Я получаю эту ошибку:
/usr/lib/em_led: /usr/lib/i386/libc.a(exit.o): multiply defined (error)
Undefined:
_test_variable (<---- the name of the variable is "test_variable")
make in /usr/src/kernel: Exit code 1
make in /usr/src/tools: Exit code 1
make: made 'image' look old
Это происходит, когда я использую команду make hdboot
в /usr/src/tools
, которую я использую после make install
Кто-нибудь знает, в чем здесь проблема?
ОТРЕДАКТИРОВАНО
Код:
FORWARD _PROTOTYPE( struct proc * pick_proc, (void));
FORWARD _PROTOTYPE( void enqueue_head, (struct proc *rp));
double test_variable;
//(the Variable **test_variable** one is Declared on TOP of the class after the Includes and after the declarations of the Methods
PRIVATE struct proc * pick_proc(void)
{
register struct proc *rp; /* process to run */
int q; /* iterate over queues */
int proceset;
proc_nr_t proci;
if (first_time == 1)
{
test_variable = 6.5;
}
multiply defined (error)
иUndefined: _test_variable
. Ни один из них не относится кvariable
. Итак, вам нужно показать свой код — где вы думаете, что определяетеtest_variable
, а затем беспокоитесь о том, почему вы получаете несколько определенных проблем одновременно. Компиляторы обычно добавляют начальное подчеркивание к вашим именам переменных. - person Jonathan Leffler   schedule 01.12.2015test_variable
; обычно этого достаточно. Вы можете подумать об использованииdouble test_variable = 6.5;
, что может даже означать, что вам не нужна переменнаяfirst_time
, определение которой также не показано. - person Jonathan Leffler   schedule 01.12.2015first_time
, потому чтоpick_proc
вызывается из каждого процесса. Поэтому я просто хотел инициализировать один раз. Проблема, как уже упоминалось, заключается в том, что я не могу инициализировать внутри метода... и мне НУЖНО инициализировать внутри метода. Мне не нужна СТАТИЧЕСКАЯ переменная с тем же значением, мне нужно изменить и манипулировать значением этой переменной - person user3774470   schedule 01.12.2015