Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Keil. Создаю библиотеку, подключаю к проекту. Некоторые функции и переменные в проекте и в библиотеке называются одинаково, (+)
Отправлено
Igor_Koval
02 сентября 2009, г. 21:10
и компилятор выдает кучу ошибок. Что с этим делать (опыта создания своих библиотек не имею, так что не смейтесь) ?
Составить ответ
|
Вернуться на конференцию.
Ответы
Если проблема только в линковке, то можно сделать хидерный файл типа hide_names.h (+)
-
smb
(03.09.2009, 02:03:20
89.169.78.48
, 370 байт)
Переименовать одно или другое.
-
AlexD
(02.09.2009, 21:13:19
90.151.30.43
,
пустое
)
Хорошо (+)
-
Igor_Koval
(02.09.2009, 21:14:40
91.124.39.50
, 183 байт)
для этого и придумали namespace ....
-
DASM
(02.09.2009, 21:17:19
203.185.50.220
,
пустое
)
воть
-
DASM
(02.09.2009, 21:19:12
203.185.50.220
,
пустое
,
ссылка
)
Всем спасибо, попробую разобраться ...
-
Igor_Koval
(02.09.2009, 21:40:11
91.124.39.50
,
пустое
)
а чего там разбираться ? "Маша" - имя функции, "Песцова" - фамилия(namespace). Для доступа именно к этой Маше пишем Песова::Маша (); Ну или using namespace Песцова. Тока ++ включи (кстати возможно проблема уйдет сразу - библиотека ++ по идее уже в namespace std лежит
-
DASM
(02.09.2009, 21:48:46
203.185.50.220
,
пустое
)
Это все хорошо, но проект-то на Си написан ...
-
Igor_Koval
(02.09.2009, 21:54:53
91.124.39.50
,
пустое
)
Си - подмножество C++
-
nanorobot
(02.09.2009, 21:56:25
188.16.207.242
,
пустое
)
ну и что ? Очень немного того что допустимо в С недопустимо в плюсах, да и это "то" - в основном продукт распестяйсива кодеров
-
DASM
(02.09.2009, 21:56:16
203.185.50.220
,
пустое
)
И таких совпадений в проекте из множества файлов - десятки ...
-
Igor_Koval
(02.09.2009, 21:55:57
91.124.39.50
,
пустое
)
ну другого выбора нет. При линковке имена должны быть разные. Так что или декорируй через namespace или переимновывай. Кстати мона весь проект компилить как С++ а хидер подключаемой библы обрамить extern "C" - тогда куонфликт тож уйдет,т.к. в плюсах другие правила декорорирования имен(в частности позволяющие объявить несколько функций с одним именем, но разными параметрами - т.к. декорирования в плюсах в идентификатор имени включает и сигна/Gtct
-
DASM
(02.09.2009, 22:05:31
203.185.50.220
,
пустое
)
В общем, ясно. Спасибо ...
-
Igor_Koval
(02.09.2009, 22:08:40
91.124.39.50
,
пустое
)
угу. правда мне самому теперь неясно стало. Завтра освежим Страуса.
-
DASM
(02.09.2009, 22:09:27
203.185.50.220
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 234:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru