поэтому я пытаюсь заставить библиотеку Canon EDSDK работать с cpp на моем Jetson, но я просто не могу в этом разобраться. Если вы знаете что-то, что может помочь, пожалуйста, дайте мне знать!
Я также не получаю никаких сообщений об ошибках в CLIon, только при сборке? Есть предположения?
ОС: Ubuntu 20.04 фокус машина: aarch64 (jetson Orin Nano 8 ГБ)
Я использую последнюю версию Canon EDSDK с их сайта.
Ошибка:
FAILED: CMakeFiles/InspectorMain.dir/main.cpp.o
/usr/bin/c++ -I/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header -I/home/inspector/CLionProjects/InspectorMain/Lib -isystem /usr/local/include/opencv4 -g -fdiagnostics-color=always -MD -MT CMakeFiles/InspectorMain.dir/main.cpp.o -MF CMakeFiles/InspectorMain.dir/main.cpp.o.d -o CMakeFiles/InspectorMain.dir/main.cpp.o -c /home/inspector/CLionProjects/InspectorMain/main.cpp
In file included from /home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:31,
from /home/inspector/CLionProjects/InspectorMain/main.cpp:4:
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDKTypes.h:122:9: error: ‘__int64’ does not name a type; did you mean ‘__rintf64’?
122 | typedef __int64 EdsInt64;
| ^~~~~~~
| __rintf64
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDKTypes.h:123:29: error: expected initializer before ‘EdsUInt64’
123 | typedef unsigned __int64 EdsUInt64;
| ^~~~~~~~~
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDKTypes.h:1316:5: error: ‘EdsUInt64’ does not name a type; did you mean ‘EdsUInt32’?
1316 | EdsUInt64 maxCapacity;
| ^~~~~~~~~
| EdsUInt32
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDKTypes.h:1317:5: error: ‘EdsUInt64’ does not name a type; did you mean ‘EdsUInt32’?
1317 | EdsUInt64 freeSpaceInBytes;
| ^~~~~~~~~
| EdsUInt32
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDKTypes.h:1327:5: error: ‘EdsUInt64’ does not name a type; did you mean ‘EdsUInt32’?
1327 | EdsUInt64 size;
| ^~~~~~~~~
| EdsUInt32
In file included from /home/inspector/CLionProjects/InspectorMain/main.cpp:4:
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:574:42: error: ‘EdsUInt64’ has not been declared
574 | EdsUInt64 inReadSize,
| ^~~~~~~~~
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:732:29: error: ‘EdsUInt64’ was not declared in this scope; did you mean ‘EdsUInt32’?
732 | EdsUInt64 inBufferSize,
| ^~~~~~~~~
| EdsUInt32
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:733:41: error: expected primary-expression before ‘*’ token
733 | EdsStreamRef* outStream );
| ^
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:733:53: error: ‘outStream’ was not declared in this scope
733 | EdsStreamRef* outStream );
| ^~~~~~~~~
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:733:63: error: expression list treated as compound expression in initializer [-fpermissive]
733 | EdsStreamRef* outStream );
| ^
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:761:15: error: ‘WCHAR’ does not name a type
761 | const WCHAR* inFileName,
| ^~~~~
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:787:17: error: ‘EdsUInt64’ has not been declared
787 | EdsUInt64 inBufferSize,
| ^~~~~~~~~
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:837:17: error: ‘EdsUInt64’ has not been declared
837 | EdsUInt64 inReadSize,
| ^~~~~~~~~
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:839:17: error: ‘EdsUInt64’ has not been declared
839 | EdsUInt64* outReadSize );
| ^~~~~~~~~
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:861:17: error: ‘EdsUInt64’ has not been declared
861 | EdsUInt64 inWriteSize,
| ^~~~~~~~~
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:863:17: error: ‘EdsUInt64’ has not been declared
863 | EdsUInt64* outWrittenSize );
| ^~~~~~~~~
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:890:17: error: ‘EdsInt64’ has not been declared
890 | EdsInt64 inSeekOffset,
| ^~~~~~~~
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:910:17: error: ‘EdsUInt64’ has not been declared
910 | EdsUInt64* outPosition );
| ^~~~~~~~~
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:928:17: error: ‘EdsUInt64’ has not been declared
928 | EdsUInt64* outLength );
| ^~~~~~~~~
/home/inspector/CLionProjects/InspectorMain/Lib/EDSDK/Header/EDSDK.h:952:17: error: ‘EdsUInt64’ has not been declared
952 | EdsUInt64 inWriteSize,
| ^~~~~~~~~
вот мой CmakeList.txt:
cmake_minimum_required(VERSION 3.5)
project(InspectorMain)
# Set CUDA directory
set(CUDA_DIR /usr/local/cuda)
set(OpenCV_DIR /usr/local/include/opencv4/opencv2)
find_package(OpenCV 4 REQUIRED)
# Add executable
add_executable(InspectorMain
main.cpp
headerFiles/Stitcher.h
headerFiles/camera.h
headerFiles/general.h
camera.cpp
)
# Include directories
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Lib/EDSDK/Header)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Lib)
# Link OpenCV libraries
target_link_libraries(InspectorMain ${OpenCV_LIBS})
# Link with the shared library (libEDSDK.so)
target_link_libraries(InspectorMain ${CMAKE_CURRENT_SOURCE_DIR}/Lib/EDSDK/ARM64/libEDSDK.so)
При переполнении стека сообщение с вопросом НЕ должно содержать решения. Вы можете разместить решение в своем сообщении с ответом (здесь вполне допустимо ответить на свой вопрос: stackoverflow.com/help/self-ответ).





Я изменил определения типов:
от __int64 до long long unsigned,
от int_64 до unsigned long long,
от WCHAR до wchar_t
EDSDK, кажется, теперь работает :)
Вам необходимо включить заголовочный файл, содержащий определение
__int64. Но сначала убедитесь, что EDSDKTypes.h не содержит ошибки типа, скрывающей его собственное определение.