Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1c13ef429c |
7
.dockerignore
Normal file
7
.dockerignore
Normal file
@@ -0,0 +1,7 @@
|
||||
/.idea
|
||||
/.git
|
||||
/cmake-build-debug-visual-studio
|
||||
/V6.1.9.45_build20220902_ArmLinux64_ZH_20240802154010_lib.zip
|
||||
/V6.1.9.48_build20230410_linux64_20240829112751_lib.zip
|
||||
/V6.1.9.48_build20230410_win64_20240829112623_lib.zip
|
||||
/build
|
||||
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1,7 +1,12 @@
|
||||
/.idea
|
||||
/cmake-build-debug-visual-studio
|
||||
/cmake-build-release-visual-studio
|
||||
*.lib
|
||||
*.dll
|
||||
*.so
|
||||
*.a
|
||||
*.zip
|
||||
*.zip
|
||||
/build
|
||||
/arm64_linux_lib
|
||||
/arm64_windows_lib
|
||||
/amd64_linux_lib
|
||||
@@ -1,9 +1,27 @@
|
||||
cmake_minimum_required(VERSION 3.29)
|
||||
project(HikNetSDKPkg)
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
|
||||
project(HikNetSDKPkg CXX)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
include_directories("./src/include/Hik/amd64")
|
||||
add_compile_definitions(Export)
|
||||
|
||||
set(OS ${CMAKE_HOST_SYSTEM_NAME})
|
||||
set(Arch ${CMAKE_HOST_SYSTEM_PROCESSOR})
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
|
||||
|
||||
message(STATUS "Target Operating System: ${OS}")
|
||||
message(STATUS "Target Architecture: ${Arch}")
|
||||
|
||||
if(OS STREQUAL "Windows")
|
||||
set(CMAKE_DEBUG_POSTFIX "_win_amd64_d")
|
||||
set(CMAKE_RELEASE_POSTFIX "_win_amd64")
|
||||
elseif (Arch STREQUAL "x86_64" OR Arch STREQUAL "amd64")
|
||||
set(CMAKE_DEBUG_POSTFIX "_linux_amd64_d")
|
||||
set(CMAKE_RELEASE_POSTFIX "_linux_amd64")
|
||||
elseif (Arch STREQUAL "aarch64" OR Arch STREQUAL "arm64")
|
||||
set(CMAKE_DEBUG_POSTFIX "_linux_arm64_d")
|
||||
set(CMAKE_RELEASE_POSTFIX "_linux_arm64")
|
||||
endif ()
|
||||
|
||||
add_library(HikNetSDKPkg SHARED
|
||||
library.cpp
|
||||
@@ -13,8 +31,34 @@ add_library(HikNetSDKPkg SHARED
|
||||
src/FormatTrans.cpp
|
||||
)
|
||||
|
||||
target_compile_definitions(HikNetSDKPkg PRIVATE Export)
|
||||
|
||||
target_link_directories(HikNetSDKPkg PUBLIC ./HCNetSDKamd64/lib)
|
||||
target_link_libraries(HikNetSDKPkg "HCNetSDK.lib")
|
||||
target_link_libraries(HikNetSDKPkg "HCCore.lib")
|
||||
target_link_libraries(HikNetSDKPkg "GdiPlus.lib")
|
||||
if(Arch STREQUAL "x86_64" OR OS STREQUAL "Windows")
|
||||
target_include_directories(HikNetSDKPkg PRIVATE "./src/include/Hik/amd64")
|
||||
elseif (Arch STREQUAL "aarch64")
|
||||
target_include_directories(HikNetSDKPkg PRIVATE "./src/include/Hik/arm64")
|
||||
endif ()
|
||||
|
||||
if(OS STREQUAL "Windows")
|
||||
target_link_directories(HikNetSDKPkg PRIVATE "./arm64_windows_lib")
|
||||
target_link_libraries(HikNetSDKPkg PRIVATE "HCNetSDK.lib")
|
||||
target_link_libraries(HikNetSDKPkg PRIVATE "HCCore.lib")
|
||||
target_link_libraries(HikNetSDKPkg PRIVATE "GdiPlus.lib")
|
||||
elseif (Arch STREQUAL "x86_64")
|
||||
target_link_directories(HikNetSDKPkg PRIVATE "./amd64_linux_lib")
|
||||
target_link_libraries(HikNetSDKPkg "libHCCore.so")
|
||||
target_link_libraries(HikNetSDKPkg "libhcnetsdk.so")
|
||||
target_link_libraries(HikNetSDKPkg "libhpr.so")
|
||||
target_link_libraries(HikNetSDKPkg "libz.so")
|
||||
elseif (Arch STREQUAL "aarch64")
|
||||
target_link_directories(HikNetSDKPkg PRIVATE "./arm64_linux_lib")
|
||||
target_link_libraries(HikNetSDKPkg "libAudioRender.so")
|
||||
target_link_libraries(HikNetSDKPkg "libcrypto.so")
|
||||
target_link_libraries(HikNetSDKPkg "libHCCore.so")
|
||||
target_link_libraries(HikNetSDKPkg "libhcnetsdk.so")
|
||||
target_link_libraries(HikNetSDKPkg "libhpr.so")
|
||||
target_link_libraries(HikNetSDKPkg "libPlayCtrl.so")
|
||||
target_link_libraries(HikNetSDKPkg "libssl.so")
|
||||
target_link_libraries(HikNetSDKPkg "libSuperRender.so")
|
||||
target_link_libraries(HikNetSDKPkg "libz.so")
|
||||
endif ()
|
||||
22
Dockerfile
Normal file
22
Dockerfile
Normal file
@@ -0,0 +1,22 @@
|
||||
FROM alpine:3.19 AS deps
|
||||
|
||||
WORKDIR /usr
|
||||
|
||||
RUN apk add gcc g++ cmake make acl
|
||||
|
||||
FROM alpine:3.19 AS build
|
||||
|
||||
WORKDIR /hikbuild
|
||||
|
||||
COPY --from=deps /usr /usr
|
||||
COPY --from=deps /lib /lib
|
||||
COPY . /hikbuild
|
||||
|
||||
RUN cmake . -D Arch=${TARGETARCH} -D CMAKE_BUILD_TYPE=RELEASE && make
|
||||
|
||||
FROM alpine:3.19 AS export
|
||||
|
||||
WORKDIR /home
|
||||
COPY --from=build /hikbuild/build /home
|
||||
|
||||
#docker buildx build --platform linux/amd64,linux/arm64 --output type=local,dest=/hikbuild/ .
|
||||
28
README.md
Normal file
28
README.md
Normal file
@@ -0,0 +1,28 @@
|
||||
## 已验证系统环境
|
||||
|
||||
| 架构 | 系统 |使用docker |
|
||||
|:-------:|:-----------:|:-------:|
|
||||
| aarch64 | alpine:3.19 | 🐳 |
|
||||
| x86_64 | alpine:3.19 | 🐳 |
|
||||
| x86_64 | windows 10 | |
|
||||
|
||||
## 编译流程
|
||||
### 1. 下载库
|
||||
在仓库的发行版中 将 HikNetSDK 标签下的不同架构的 lib 放在源码根目录中
|
||||
```shell
|
||||
D:.
|
||||
│ V6.1.9.45_build20220902_ArmLinux64_ZH_20240802154010_lib.zip
|
||||
│ V6.1.9.48_build20230410_linux64_20240829112751_lib.zip
|
||||
│ V6.1.9.48_build20230410_win64_20240829112623_lib.zip
|
||||
```
|
||||
### 2.1 编译 Linux 部分
|
||||
将下载的zip压缩文件 `ArmLinux64` 和 `linux64` 在源码目录解压,然后重命名
|
||||
```shell
|
||||
V6.1.9.45···ArmLinux64···.zip --解压后重命名为--> arm64_linux_lib
|
||||
V6.1.9.48···linux64···.zip --解压后重命名为--> amd64_linux_lib
|
||||
```
|
||||
### 2.2 编译 Windows 部分
|
||||
将下载的zip压缩文件 `win64` 在源码目录解压,然后重命名
|
||||
```shell
|
||||
V6.1.9.45···win64···.zip --解压后重命名为--> arm64_windows_lib
|
||||
```
|
||||
@@ -1,13 +1,18 @@
|
||||
#ifndef HIKVISION_NETWORK_SDK_PACKAGING_LIBRARY_LIBRARY_H
|
||||
#define HIKVISION_NETWORK_SDK_PACKAGING_LIBRARY_LIBRARY_H
|
||||
|
||||
#ifdef Export
|
||||
#define Omnimatrix __declspec(dllexport)
|
||||
#ifdef _WIN32
|
||||
#ifdef Export
|
||||
#define Omnimatrix __declspec(dllexport)
|
||||
#else
|
||||
#define Omnimatrix __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#define Omnimatrix __declspec(dllimport)
|
||||
#define Omnimatrix
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
@@ -63,7 +63,7 @@ char* CheckTimeRegionWithMonth(void* PtrHIKNvr,int year,int month){
|
||||
res = HIKNvrObj->TimeToJson(select_time, &available_date_vec).dump();
|
||||
}
|
||||
char* cString = new char[res.size() + 1];
|
||||
strcpy_s(cString, res.size()+1,res.c_str());
|
||||
std::strcpy(cString,res.c_str());
|
||||
return cString;
|
||||
}
|
||||
|
||||
@@ -81,6 +81,6 @@ char* CheckTimeRegionWithDay(void* PtrHIKNvr,int year,int month,int day){
|
||||
res = HIKNvrObj->TimeToJsonInDay(select_time, &available_time_vec).dump();
|
||||
}
|
||||
char* cString = new char[res.size() + 1];
|
||||
strcpy_s(cString, res.size()+1,res.c_str());
|
||||
std::strcpy(cString,res.c_str());
|
||||
return cString;
|
||||
}
|
||||
Reference in New Issue
Block a user