|
Автор |
Сообщение |
pini-pini
Участник тусовки
Зарегистрирован: 11.06.2007 Сообщения: 150 Откуда: Internet
|
|
|
|
root@pininotebook:/work/linux_projects/mirror# cat mirrord.c
#include <stdio.h>
#include <stdlib.h>
#include "mirrord.h"
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
int main()
{
printf("Hello, world!\n");
hello();
return true;
}
root@pininotebook:/work/linux_projects/mirror# cat mirrord.h
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifndef MIRRORD_H
#define MIRRORD_H
/* #define TRUE 1
#define FALSE 0
#define true 1
#define false 0*/
#endif
-------------------------------------
При компиляции говорит:
root@pininotebook:/work/linux_projects/mirror# make
make all-am
make[1]: Entering directory `/work/linux_projects/mirror'
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT mirrord.o -MD -MP -MF ".deps/mirrord.Tpo" -c -o mirrord.o mirrord.c; \
then mv -f ".deps/mirrord.Tpo" ".deps/mirrord.Po"; else rm -f ".deps/mirrord.Tpo"; exit 1; fi
mirrord.c: In function ‘main’:
mirrord.c:14: error: ‘true’ undeclared (first use in this function)
mirrord.c:14: error: (Each undeclared identifier is reported only once
mirrord.c:14: error: for each function it appears in.)
make[1]: *** [mirrord.o] Ошибка 1
make[1]: Leaving directory `/work/linux_projects/mirror'
make: *** [all] Ошибка 2
---------------------------------
Как вылечить? |
|
Вернуться к началу |
pini-pini@jabber.ru |
|
|
ShprotX
Участник тусовки
Зарегистрирован: 07.01.2007 Сообщения: 312 Откуда: Украина
|
|
|
|
pini-pini писал(а): |
Как вылечить? |
"#define true 1" раскомментить. У тебя подсветка синтаксиса имеется? |
|
Вернуться к началу |
shprotx@jabber.ru |
|
|
pini-pini
Участник тусовки
Зарегистрирован: 11.06.2007 Сообщения: 150 Откуда: Internet
|
|
|
|
ShprotX писал(а): |
"#define true 1" раскомментить. |
Ну это понятно, но почему этого нет в стандартной библиотеке?
Код: |
uname -a
Linux pininotebook.pini-pini.lcl 2.6.18-5-686 #1 SMP Wed Oct 3 00:12:50 UTC 2007 i686 GNU/Linux
pinipini@pininotebook:/work/linux_projects/mirror$ cat /etc/debian_version
4.0
|
ShprotX писал(а): |
У тебя подсветка синтаксиса имеется? |
vim, т.е. и да и нет |
|
Вернуться к началу |
pini-pini@jabber.ru |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Цитата: |
"#define true 1" раскомментить.
|
Это не вариант. Можно просто написать return 1; У него трабла глубже, скорее что-то не установлено. |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
pini-pini
Участник тусовки
Зарегистрирован: 11.06.2007 Сообщения: 150 Откуда: Internet
|
|
|
|
Да в том-то и дело, что всё установлено, позавчера linuxconf сомпилировался.
А с этого времени никаких изменений небыло... |
|
Вернуться к началу |
pini-pini@jabber.ru |
|
|
ShprotX
Участник тусовки
Зарегистрирован: 07.01.2007 Сообщения: 312 Откуда: Украина
|
|
|
|
den писал(а): |
Это не вариант. Можно просто написать return 1; У него трабла глубже, скорее что-то не установлено. |
Разве что мозги. С каких пор true и false стали входить в стандартную библиотеку C? |
|
Вернуться к началу |
shprotx@jabber.ru |
|
|
ShprotX
Участник тусовки
Зарегистрирован: 07.01.2007 Сообщения: 312 Откуда: Украина
|
|
|
|
Кстати, что это за прикол такой, в main возвращать true? |
|
Вернуться к началу |
shprotx@jabber.ru |
|
|
pini-pini
Участник тусовки
Зарегистрирован: 11.06.2007 Сообщения: 150 Откуда: Internet
|
|
|
|
С чего-бы это?
Цитата: |
С каких пор true и false стали входить в стандартную библиотеку C? |
А с каких пор стандартная библиотека C использует true и false, но не содержит их?
Цитата: |
Кстати, что это за прикол такой, в main возвращать true? |
Это является своего рода показателем того, что программа завершилась успешно. |
|
Вернуться к началу |
pini-pini@jabber.ru |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Тогда значит, у всех этих товарищей, которые писали в том числе и код ядра тоже мозги отсутствуют?
http://www.google.com/search?client=opera&rls=ru&q=error:+%E2%80%98true%E2%80%99+undeclared+(first+use+in+this+function)&sourceid=opera&ie=utf-8&oe=utf-8
Цитата: |
Re: Не могу скомпилировать ядро ASP 11.2 2.6.17-1.2157 - Общий ...
scripts/kconfig/lxdialog/checklist.c:146: error: ‘TRUE’ undeclared (first use in this function) scripts/kconfig/lxdialog/checklist.c:166: warning: implicit ...
|
|
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
ShprotX
Участник тусовки
Зарегистрирован: 07.01.2007 Сообщения: 312 Откуда: Украина
|
|
|
|
pini-pini писал(а): |
С чего-бы это? |
Глупые вопросы по C.
pini-pini писал(а): |
А с каких пор стандартная библиотека C использует true и false, но не содержит их? |
Стандартная библиотека C не содержит и не использует true и false.
pini-pini писал(а): |
Это является своего рода показателем того, что программа завершилась успешно. |
Я тебя обрадую: true соответствует 1, а 1 соответствует неудачному завершению, т.е. EXIT_FAILURE. См. man exit(3). |
|
Вернуться к началу |
shprotx@jabber.ru |
|
|
ShprotX
Участник тусовки
Зарегистрирован: 07.01.2007 Сообщения: 312 Откуда: Украина
|
|
|
|
den писал(а): |
Тогда значит, у всех этих товарищей, которые писали в том числе и код ядра тоже мозги отсутствуют?
Цитата: |
Re: Не могу скомпилировать ядро ASP 11.2 2.6.17-1.2157 - Общий ...
scripts/kconfig/lxdialog/checklist.c:146: error: ‘TRUE’ undeclared |
|
Это не ядро, а система конфигурации/компиляции. |
|
Вернуться к началу |
shprotx@jabber.ru |
|
|
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Все равно, вообще там трабла была в том, что ncurces не была установлена, но в том числе и вылезла ошибка с true.
Хотя в приведенном выше листинге действительно проще указать return 1 и забыть о проблеме |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
pini-pini
Участник тусовки
Зарегистрирован: 11.06.2007 Сообщения: 150 Откуда: Internet
|
|
|
|
ShprotX писал(а): |
Стандартная библиотека C не содержит и не использует true и false. |
Ну ладно, допустим. Небуду спорить.
Но тогда где-же определяется что
Код: |
#define true 1
#define false 0 |
?
ShprotX писал(а): |
1 соответствует неудачному завершению. |
Я тебя тоже обрадую: я знаю, что 0 - нормальное завершение, а все остальные - ненормальное.
Я специально поставил exit 1; чтобы осмотреть, что получится! |
|
Вернуться к началу |
pini-pini@jabber.ru |
|
|
pini-pini
Участник тусовки
Зарегистрирован: 11.06.2007 Сообщения: 150 Откуда: Internet
|
|
|
|
Теперь по делу: как сделать чтобы true и остальные работали?
Может какой-нибудь заголовочный файл надо подключить?
Или ещё чего-то чего я не знаю? |
|
Вернуться к началу |
pini-pini@jabber.ru |
|
|
ShprotX
Участник тусовки
Зарегистрирован: 07.01.2007 Сообщения: 312 Откуда: Украина
|
|
|
|
pini-pini писал(а): |
Но тогда где-же определяется что
Код: |
#define true 1
#define false 0 |
|
Где хочешь - там и будет. Хочешь - в твоем собственном файле, хочешь - можешь какую-нибудь левую либу подключить.
pini-pini писал(а): |
Я тебя тоже обрадую: я знаю, что 0 - нормальное завершение, а все остальные - ненормальное.
Я специально поставил exit 1; чтобы осмотреть, что получится! |
А вот это ты написал тоже чтобы посмотреть, что получиться?
pini-pini писал(а): |
ShprotX писал(а): |
Кстати, что это за прикол такой, в main возвращать true? |
Это является своего рода показателем того, что программа завершилась успешно. |
pini-pini писал(а): |
Теперь по делу: как сделать чтобы true и остальные работали?
Может какой-нибудь заголовочный файл надо подключить?
Или ещё чего-то чего я не знаю? |
А нужны ли true и false вообще? |
|
Вернуться к началу |
shprotx@jabber.ru |
|
|
|
|