找不到佳能sdk类型,我该如何修复它?

问题描述 投票:0回答:1

所以我试图让佳能 EDSDK 库与我的 jetson 上的 cpp 一起使用,但我就是不明白。如果您知道一些可能有帮助的信息,请告诉我!

仅当我构建时,我在 CLIon 中也没有收到任何错误消息?有什么想法吗?

操作系统:ubuntu 20.04 焦点 机器:aarch64(jetson Orin Nano 8gb)

我正在使用他们网站上的最新佳能 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)

c++ linux cmake sdk
1个回答
0
投票

我更改了 typedef: __int64 到 long long unsigned int_64 到 unsigned long long WCHAR 到 wchar_t

EDSDK 似乎现在可以工作了:)

© www.soinside.com 2019 - 2024. All rights reserved.