Статус: Новичок
Группы: Участники
Зарегистрирован: 19.12.2022(UTC) Сообщений: 5
Сказал(а) «Спасибо»: 1 раз
|
Добрый день. Столкнулся с ошибкой при сборке библиотеки cadescom для .NET по инструкции: https://github.com/Crypt...des/blob/main/README.md.Сборку выполняю в WSL на Ubuntu 24.04. Ошибку получаю при сборке ccades (команда make-j4): Код:
[ 3%] Building CXX object CMakeFiles/ccades.dir/errormsg.cpp.o
In file included from /opt/cprocsp/include/pki/atl/atldef.h:25,
from /opt/cprocsp/include/pki/atl/atlbase.h:75,
from /opt/cprocsp/include/pki/atl/atlstr.h:19,
from /home/igor/cryptopro/linux-amd64_deb/dotnetcades/ccades/errormsg.cpp:37:
/opt/cprocsp/include/pki/atl/atlunixdefs.h:41:9: error: ‘uint64_t’ does not name a type
41 | typedef uint64_t __uint64;
| ^~~~~~~~
/opt/cprocsp/include/pki/atl/atlunixdefs.h:1:1: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
+++ |+#include <cstdint>
1 | #ifndef _ATLUNIXDEFS_H_INCLUDED
/opt/cprocsp/include/pki/atl/atlunixdefs.h:72:9: error: ‘uint32_t’ does not name a type
72 | typedef uint32_t UINT32;
| ^~~~~~~~
/opt/cprocsp/include/pki/atl/atlunixdefs.h:72:9: note: ‘uint32_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
In file included from /opt/cprocsp/include/pki/atl/atlcore.h:35,
from /opt/cprocsp/include/pki/atl/atlbase.h:81:
/opt/cprocsp/include/reader/support.h:1308:13: error: ‘uint16_t’ does not name a type
1308 | typedef uint16_t WIN_WCHAR_T;
| ^~~~~~~~
/opt/cprocsp/include/reader/support.h:62:1: note: ‘uint16_t’ is defined in header ‘<cstdint>’; did you forget to
#include <cstdint>’?
61 | #include "reader/support_registry.h"
+++ |+#include <cstdint>
62 |
/opt/cprocsp/include/reader/support.h:1311:38: error: ‘WIN_WCHAR_T’ does not name a type
1311 | size_t support_utf16le_len(const WIN_WCHAR_T * src)
| ^~~~~~~~~~~
/opt/cprocsp/include/reader/support.h:1320:39: error: ‘WIN_WCHAR_T’ does not name a type
1320 | size_t support_utf16le_nlen(const WIN_WCHAR_T * src,
| ^~~~~~~~~~~
/opt/cprocsp/include/reader/support.h:1346:9: error: ‘WIN_WCHAR_T’ has not been declared
1346 | WIN_WCHAR_T * dst, /* buffer to hold utf16 string or NULL to calculate*/
| ^~~~~~~~~~~
/opt/cprocsp/include/reader/support.h:1357:16: error: ‘WIN_WCHAR_T’ does not name a type
1357 | const WIN_WCHAR_T * src, /* utf16 string */
| ^~~~~~~~~~~
In file included from /opt/cprocsp/include/pki/atl/atlconv.h:30,
from /opt/cprocsp/include/pki/atl/atltrace.h:17,
from /opt/cprocsp/include/pki/atl/atlexcept.h:17,
from /opt/cprocsp/include/pki/atl/atlchecked.h:17,
from /opt/cprocsp/include/pki/atl/atlcore.h:46:
/opt/cprocsp/include/pki/atl/atlalloc.h: In function ‘HRESULT ATL::AtlMultiply(T*, T, T) [with T = unsigned int; HRESULT = int]’:
/opt/cprocsp/include/pki/atl/atlalloc.h:149:9: error: ‘__uint64’ was not declared in this scope; did you mean ‘__int64’?
149 | __uint64 i64Result=static_cast<__uint64>(iLeft) * static_cast<__uint64>(iRight);
| ^~~~~~~~
| __int64
/opt/cprocsp/include/pki/atl/atlalloc.h:150:12: error: ‘i64Result’ was not declared in this scope; did you mean ‘piResult’?
150 | if(i64Result>UINT_MAX)
| ^~~~~~~~~
| piResult
/opt/cprocsp/include/pki/atl/atlalloc.h:154:54: error: ‘i64Result’ was not declared in this scope; did you mean ‘piResult’?
154 | *piResult=static_cast<unsigned int _ATL_W64>(i64Result);
| ^~~~~~~~~
| piResult
/opt/cprocsp/include/pki/atl/atlalloc.h: In function ‘HRESULT ATL::AtlMultiply(T*, T, T) [with T = long unsigned int; HRESULT = int]’:
/opt/cprocsp/include/pki/atl/atlalloc.h:174:9: error: ‘__uint64’ was not declared in this scope; did you mean ‘__int64’?
174 | __uint64 i64Result=static_cast<__uint64>(iLeft) * static_cast<__uint64>(iRight);
| ^~~~~~~~
| __int64
/opt/cprocsp/include/pki/atl/atlalloc.h:175:12: error: ‘i64Result’ was not declared in this scope; did you mean ‘piResult’?
175 | if(i64Result>ULONG_MAX)
| ^~~~~~~~~
| piResult
/opt/cprocsp/include/pki/atl/atlalloc.h:179:55: error: ‘i64Result’ was not declared in this scope; did you mean ‘piResult’?
179 | *piResult=static_cast<unsigned long _ATL_W64>(i64Result);
| ^~~~~~~~~
| piResult
make[2]: *** [CMakeFiles/ccades.dir/build.make:510: CMakeFiles/ccades.dir/errormsg.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/ccades.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
Подскажите, пожалуйста, в чем ее причина?
|
|
|
|
Статус: Администратор
Группы: Участники
Зарегистрирован: 01.03.2017(UTC) Сообщений: 114  Откуда: Москва Сказал(а) «Спасибо»: 7 раз Поблагодарили: 47 раз в 34 постах
|
Здравствуйте. Не хватало включения заголовочного файла <cstdint> Цитата:... ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’? +++ |+#include <cstdint> ... Добавили исправление в основной репозиторий https://github.com/Crypt...70ced37b52c3a9780ca1acd4Проверьте, пожалуйста, что теперь собирается успешно.
|
 1 пользователь поблагодарил Ситдиков Денис за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 19.12.2022(UTC) Сообщений: 5
Сказал(а) «Спасибо»: 1 раз
|
Спасибо! Библиотека успешно собралась.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 19.12.2022(UTC) Сообщений: 5
Сказал(а) «Спасибо»: 1 раз
|
При запуске примеров (папка samples) получаю ошибки: Цитата: Unable to load DLL '../ccades/libccades' or one of its dependencies: Не найден указанный модуль. (0x8007007E) Unable to load DLL '../ccades/libccades' or one of its dependencies: Не найден указанный модуль. (0x8007007E) Unable to load DLL '../ccades/libccades' or one of its dependencies: Не найден указанный модуль. (0x8007007E) Unable to load DLL '../ccades/libccades' or one of its dependencies: Не найден указанный модуль. (0x8007007E)
Пробовал перенести dotnetcades.dll (вместе с deps.json и .pdb) и ccades/libccades.so в свой проект, но получаю аналогичную ошибку. Уточните, пожалуйста, как корректно подключить библиотеку к моему проекту? Отредактировано пользователем 19 марта 2025 г. 16:46:24(UTC)
| Причина: Не указана
|
|
|
|
Статус: Администратор
Группы: Участники
Зарегистрирован: 01.03.2017(UTC) Сообщений: 114  Откуда: Москва Сказал(а) «Спасибо»: 7 раз Поблагодарили: 47 раз в 34 постах
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.04.2025(UTC) Сообщений: 2 
|
Привет! :)
У тебя ошибка из-за того, что компилятор не может найти типы данных типа uint64_t, uint32_t и так далее. Эти типы определяются в стандартной библиотеке C++ в файле <cstdint>, и, судя по всему, его забыли подключить в исходниках. Это довольно часто бывает.
Чтобы починить, сделай следующее:
В файле atlunixdefs.h и других, где встречаются ошибки с типами данных (например, в support.h), добавь строчку:
cpp Копировать Редактировать #include <cstdint> Это подключит нужный заголовок, который и определяет эти типы.
Попробуй снова собрать проект после этого.
Если не помогло, проверь, может у тебя стоит устаревшая версия библиотеки или какой-то не тот компилятор. Ну и еще можно посмотреть, может какие-то зависимости не установлены.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close