简体中文

Windows下链接P2P静态库的方法

如需使用window静态库编译,需修改CMakeList以及build.bat,具体可以参考下面的方法。

修改CMakeList

Sample_AVAPIs
project(AVAPIs_Sample)
cmake_minimum_required(VERSION 2.8)
add_definitions( -DIOTC_STATIC_LIB )
#set(ROOT_DIR "${CMAKE_SOURCE_DIR}/../../../")

include_directories(${ROOT_DIR}/Include)
include_directories(${CMAKE_SOURCE_DIR})
include_directories(${CMAKE_SOURCE_DIR}/extension)

find_library(AVAPIs_sT AVAPIs_sT HINTS ${LIB_DIR})
find_library(IOTCAPIs_sT IOTCAPIs_sT HINTS ${LIB_DIR})
find_library(json-c json-c HINTS ${LIB_DIR})
find_library(libcurl libcurl HINTS ${LIB_DIR})
find_library(libcrypto libcrypto HINTS ${LIB_DIR})
find_library(zlibstatic zlibstatic HINTS ${LIB_DIR})

SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}")
SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}")
SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}")
SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}")

add_executable(AVAPIs_Client  AVAPIs_Client.c extension/demoOption/demoOption.c)
target_link_libraries(AVAPIs_Client AVAPIs_sT IOTCAPIs_sT json-c libcurl libcrypto libssl Crypt32 legacy_stdio_definitions Ws2_32 winmm wldap32)
Sample_IOTCAPIs
project(IOTCAPIs_Sample)
cmake_minimum_required(VERSION 2.8)
add_definitions( -DIOTC_STATIC_LIB )
#set(ROOT_DIR "${CMAKE_SOURCE_DIR}/../../../")

include_directories(${ROOT_DIR}/Include)
include_directories(${CMAKE_SOURCE_DIR})

find_library(IOTCAPIs_sT IOTCAPIs_sT HINTS ${LIB_DIR})
find_library(json-c json-c HINTS ${LIB_DIR})
find_library(libcurl libcurl HINTS ${LIB_DIR})
find_library(libcrypto libcrypto HINTS ${LIB_DIR})
find_library(zlibstatic zlibstatic HINTS ${LIB_DIR})

SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}")
SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}")
SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}")
SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}")

add_executable(IOTCAPIs_Device IOTCAPIs_Device.c)
target_link_libraries(IOTCAPIs_Device IOTCAPIs_sT json-c libcurl libcrypto libssl Crypt32 legacy_stdio_definitions Ws2_32 winmm wldap32)

add_executable(IOTCAPIs_Client IOTCAPIs_Client.c)
target_link_libraries(IOTCAPIs_Client IOTCAPIs_sT json-c libcurl libcrypto libssl Crypt32 legacy_stdio_definitions Ws2_32 winmm wldap32)

修改build.bat

需将
set LibDir=%RootDir%\Lib\Windows\x64\Release\
修改为:
set LibDir=%RootDir%\Lib\Windows\x64\Release_Static\

完整的脚本:

@echo off
set CurDir=%cd%\
set RootDir=%CurDir%\..\..\..\
set LibDir=%RootDir%\Lib\Windows\x64\Release_Static\
set BuildDir=%CurDir%\build\
set OutputDir=%CurDir%\output\

rd /s /q %OutputDir%

mkdir %BuildDir%
cd %BuildDir%
xcopy %LibDir%\*.lib %BuildDir% /E /Y

cmake -DROOT_DIR=%RootDir% -DOUTPUT_DIR=%OutputDir% -DLIB_DIR=%LibDir% -DCMAKE_GENERATOR_PLATFORM=x64  .. || exit /b 101
cmake --build . --config Release || exit /b 102
cd ..

#如果后续需要用vs开发项目,需注释掉下面这行
#rd /s /q %BuildDir%


即刻开启您的物联网之旅

联系解决方案专家
Kalay App
解决方案
新闻动态
公司动态
行业资讯
媒体报道
永续发展
经营者的话
社会参与
环境永续
公司治理

+86 755 27702549

7×24小时服务热线

法律声明 隐私权条款

关注“TUTK”

TUTK服务尽在掌握

© 2022 物联智慧科技(深圳)有限公司版权所有粤ICP备14023641号
在线咨询
扫一扫

TUTK服务尽在掌握

全国免费服务热线
+86 755 27702549

返回顶部