更新时间:2024-02-02 GMT+08:00
分享

常见编译问题

本章节收录了编译sdk或者sdk demo可能遇到的一些编译问题,对应版本的问题可能在其他旧版本中也出现,都可以参考

v3.23.3版本反映的常见问题:

问题1:

编译sdk的vs工程报错:

报错文件:目录${yourSDKPath}\platform\eSDK_LogAPI_V2.1.10\C\include下面的eSDKLogAPI.h、eSDKLogDataType.h这两个文件

vs编译器错误码:c2018

解决方案:

修改上述目录下的两个文件(eSDKLogAPI.h、eSDKLogDataType.h)的行尾序列为CRLF

问题2:sdk的vs工程编译成功后还需要手动拷贝lib、dll到demo工程目录下才能运行demo程序,不够方便

解决方案(以Debug,x64为例):

1、编译Debug,x64的obs.sln解决方案

2、打开obs_demo.sln解决方案,调整属性为Debug,x64,按图操作后,填入值:

PATH=%PATH%;$(ProjectDir)..\..\eSDK_OBS_API_C++\build\vc100\Debug;$(ProjectDir)..\..\eSDK_OBS_API_C++\bin\win64_x64_msvc\release;$(ProjectDir)..\..\..\..\platform\eSDK_LogAPI_V2.1.10\C\release_x64;$(LocalDebuggerEnvironment)

v3.22.7版本反映的Sdk本体常见编译问题

问题1:

解决方案:通过下面的脚本去编译securec组件,并将产物拷贝到对应目录

export Your_SDK_path='Your_SDK_path'

cd ${Your_SDK_path}/platform/huaweisecurec/src/

make

mkdir ${Your_SDK_path}/platform/huaweisecurec/lib/linux

cp ${Your_SDK_path}/platform/huaweisecurec/lib/libsecurec.so ${Your_SDK_path}/platform/huaweisecurec/lib/linux

cd ${Your_SDK_path}/source/eSDK_OBS_API/eSDK_OBS_API_C++

#需要先cd到目录下,因为脚本按相对路径查找依赖项

sh build.sh

问题2:

解决方案:

在source\eSDK_OBS_API\eSDK_OBS_API_C++\src\object\download_file.c

中删除26、27行(如下)

pthread_mutex_t g_mutexThreadCheckpoint;

pthread_mutex_t g_mutexThreadCheckpoint_download;

在source\eSDK_OBS_API\eSDK_OBS_API_C++\src\object\object_common.c

中删除31、32行(如下)

pthread_mutex_t g_mutexThreadCheckpoint;

pthread_mutex_t g_mutexThreadCheckpoint_download;

之后编译即可

问题3:

这个问题一般是在其他路径中执行build.sh导致的,需要先cd到对应目录下再执行,因为脚本按相对路径查找依赖项,执行如下脚本编译

export Your_SDK_path='Your_SDK_path'

cd ${Your_SDK_path}/source/eSDK_OBS_API/eSDK_OBS_API_C++

sh build.sh

v3.22.7版本反映的常见Sdk Demo编译问题

问题1:

需要拷贝cjson头文件以及相关库(如果是arm需要把路径中的linux替换为arm)

同时需要改Makefile

export Your_SDK_path='Your_SDK_path'

export Your_DEMO_path='Your_DEMO_path'

cp ${Your_SDK_path}/build/script/Provider/build/linux/cjson-1.7.15/include/cJSON.h ${Your_DEMO_path}/include

cp ${Your_SDK_path}/build/script/Provider/build/linux/cjson-1.7.15/lib/libcjson.so* ${Your_DEMO_path}/lib

打开${Your_DEMO_path}/demo/Makefile

将16行(LIB=-leSDKOBS -lsecurec)替换为LIB=-lcjson -leSDKOBS -lsecurec

cd ${Your_DEMO_path}/demo

make

相关文档