Gerasimov 0 7 февраля, 2008 Опубликовано 7 февраля, 2008 · Жалоба Здравствуйте! опять я с ламерским вопросом ;-) main.c компилится с includes.h, в includes.h есть uart.h в uart.h определяю новую переменную int uRXcount; в main.c инициализирую переменную uRXcount = 1;(для примера) при компиляции получаю Error[Pe020]: identifier "uRXcount" is undefined C:\Project\ModBusTCP\app\main.c 501 И что делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 1 7 февраля, 2008 Опубликовано 7 февраля, 2008 · Жалоба в uart.h определяю новую переменную int uRXcount; Error[Pe020]: identifier "uRXcount" is undefined C:\Project\ModBusTCP\app\main.c 501 А как вы определяете переменную? Обычно в .h файлах переменные объявляются как extern extern int uRXcount; что бы не было конфликтов если .h файл включается в несколько с файлов. При этом в одном из с файлов эта переменная должна быть определна. (иначе линкер потом ее не найдет). Но в вашем случае ошибка сообщает о том что переменная вообще не определена. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 7 февраля, 2008 Опубликовано 7 февраля, 2008 · Жалоба Выложите примерчик, который у вас не компилируется. Если h-файлы вы включаете (#include ".."), то раздельная компиляция тут не при чем... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gerasimov 0 7 февраля, 2008 Опубликовано 7 февраля, 2008 · Жалоба Благодарю. Я написал в uart.h файле extern int uRXcount; и в uart.с файле int uRXcount; (еxtern тоже пробовал подставлять) всё равно получаю Error[Pe020]: identifier "uRXcount" is undefined C:\Project\ModBusTCP\app\main.c 501 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 1 7 февраля, 2008 Опубликовано 7 февраля, 2008 · Жалоба всё равно получаю Error[Pe020]: identifier "uRXcount" is undefined C:\Project\ModBusTCP\app\main.c 501 Это значит описание переменной компилер не видит! Судя по всему вы используете IAR можно посмотреть в окне workspace зависимости файла main.c там есть файл uart.h? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladimirYU 0 7 февраля, 2008 Опубликовано 7 февраля, 2008 · Жалоба Это значит описание переменной компилер не видит! Судя по всему вы используете IAR можно посмотреть в окне workspace зависимости файла main.c там есть файл uart.h? Покажите как включен UART.h какие скобки <> или "". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gerasimov 0 7 февраля, 2008 Опубликовано 7 февраля, 2008 · Жалоба Выложите примерчик, который у вас не компилируется. Если h-файлы вы включаете (#include ".."), то раздельная компиляция тут не при чем... в includes.h мой хедер описан так: #include "uart.h" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 7 февраля, 2008 Опубликовано 7 февраля, 2008 · Жалоба дайте минимальный пример, который у вас не компилируется. Т.е. выкиньте все, оставьте только объявление этой переменной, ее инициализацию, включение файлов и выложите сюда. Скорее всего, файл с объявлением не подключен к main.c (например, что-то напутали с ifdef) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gerasimov 0 7 февраля, 2008 Опубликовано 7 февраля, 2008 · Жалоба Покорнейши благодарю за идею с ifdef! Код то чужой! я в него внедряюсь и не просёк сразу всех связей Получилось! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться