Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

Проблемы при перекомпилляции ПО для L502

Вы не вошли.

 Поиск | Регистрация | Вход 

19.01.2017 14:14:46
#1

Участник
Здесь с 19.01.2017
Сообщений: 82

Проблемы при перекомпилляции ПО для L502

Добрый день.

Возникла необходимость пересобрать ПО для L502
После установки новых драйверов при компиляции получаю ошибку

[BCC32 Error] sysmac.h(325): E2132 Templates and overloaded operators cannot have C linkage
  Full parser context
    L502Test.cpp(2): #include LCard\LCard502\L502Test.h
    L502Test.h(4): #include C:\Program Files\L-Card\lpcie\include\l502api.h
    l502api.h(16): #include C:\Program Files\L-Card\lpcie\include\l502api_compat.h
    l502api_compat.h(20): #include C:\Program Files\L-Card\lpcie\include\x502api.h
    x502api.h(8): #include C:\Program Files\L-Card\lpcie\include\lcard_pstdint.h
    lcard_pstdint.h(190): #include A1730\signal.h
    signal.h(4): #include c:\program files\embarcadero\rad studio\8.0\include\windows\rtl\System.hpp
    System.hpp(18): #include c:\program files\embarcadero\rad studio\8.0\include\windows\rtl\sysmac.h
    sysmac.h(322): namespace System

со старыми драйверами собирается нормально
система Win7 32, среда Embarcadero C++ Builder XE

В чем может быть проблема?

19.01.2017 15:12:25
#2

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,293

Re: Проблемы при перекомпилляции ПО для L502

Странно, попробуйте в l502api.h, l502api_compat.h и x502api.h строки

#ifdef __cplusplus
extern "C" {
#endif

перенести из начала файлов в место после директив #include

Также нет ли у Вас в проекте (или еще где в путях с заголовочными файлами) своего файла signal.h? В выводе он почему-то упомянут как A1730\signal.h, а не как системный #include c:\program files\embarcadero\rad studio\8.0\include\windows\ctrl\signal.h, не очень понятно, что есть A1730 - или это какая-то директория в Вашем проекте?

19.01.2017 15:45:26
#3

Участник
Здесь с 19.01.2017
Сообщений: 82

Re: Проблемы при перекомпилляции ПО для L502

Алексей L Card пишет:

Странно, попробуйте в l502api.h, l502api_compat.h и x502api.h строки

#ifdef __cplusplus
extern "C" {
#endif

перенести из начала файлов в место после директив #include

Также нет ли у Вас в проекте (или еще где в путях с заголовочными файлами) своего файла signal.h? В выводе он почему-то упомянут как A1730\signal.h, а не как системный #include c:\program files\embarcadero\rad studio\8.0\include\windows\ctrl\signal.h, не очень понятно, что есть A1730 - или это какая-то директория в Вашем проекте?

Спасибо, проверю.
A1730 - это да, директория в проекте
Пока еще грешу на переименованные с L502 на X502 функции.

19.01.2017 15:50:57
#4

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,293

Re: Проблемы при перекомпилляции ПО для L502

И в этой директории есть signal.h? тогда это из-за того, что вместо системного signal.h включается Ваш. В принципе, я посмотрел, его включение не обязательно, поэтому можно просто удалить #include <signal.h> из lcard_pstdint.h, тогда должно собраться.

20.01.2017 09:01:15
#5

Участник
Здесь с 19.01.2017
Сообщений: 82

Re: Проблемы при перекомпилляции ПО для L502

Да, такой файл есть .... пожалуй проще его переименовать.

20.01.2017 09:28:21
#6

Участник
Здесь с 19.01.2017
Сообщений: 82

Re: Проблемы при перекомпилляции ПО для L502

Алексей L Card пишет:

И в этой директории есть signal.h? тогда это из-за того, что вместо системного signal.h включается Ваш. В принципе, я посмотрел, его включение не обязательно, поэтому можно просто удалить #include <signal.h> из lcard_pstdint.h, тогда должно собраться.

Да, после переименования моего  файла signal.h в asignal.h, все собралось, спасибо.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск