常见编译问题
本章节收录了编译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