HarmonyOS ndk编译mars库失败

mars库:https://github.com/Tencent/mars

编译该库出现错误:

make[1]: Entering directory '/mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/64build' 
make[2]: Entering directory '/mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/64build' 
Scanning dependencies of target f3clog 
make[2]: Leaving directory '/mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/64build' 
make[2]: Entering directory '/mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/64build' 
[  3%] Building CXX object CMakeFiles/f3clog.dir/mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp.o 
clang++: warning: argument unused during compilation: '--gcc-toolchain=/mnt/d/harmonyos-sdk/HarmonyOS-NEXT-DP2/base/native/llvm' [-Wunused-command-line-argument] 
In file included from /mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:2: 
In file included from /mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/../../../../Src/mars/comm/xlogger/xloggerbase.h:27: 
/mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/../../../../Src/mars/comm/assert/__assert.h:35:1: error: unknown type name '__BEGIN_DECLS' 
__BEGIN_DECLS 
  ^ 
  /mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/../../../../Src/mars/comm/assert/__assert.h:46:1: error: unknown type name '__END_DECLS' 
__END_DECLS 
  ^ 
  In file included from /mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:2: 
/mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/../../../../Src/mars/comm/xlogger/xloggerbase.h:31:8: error: expected unqualified-id 
extern "C" { 
  ^ 
  /mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:56:5: error: unknown type name 'XLoggerInfo' 
  XLoggerInfo info; 
  ^ 
  /mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:57:19: error: unknown type name 'TLogLevel'; did you mean 'FTLogLevel'? 
  info.level = (TLogLevel)m_info.level; 
  ^~~~~~~~~ 
  FTLogLevel 
    /mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/../../../../Src/ftlog/api/c++/FTLogDef.h:46:3: note: 'FTLogLevel' declared here 
} FTLogLevel; 
^ 
/mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:224:32: error: unknown type name 'TLogLevel'; did you mean 'FTLogLevel'? 
if (!xlogger_IsEnabledFor((TLogLevel)level)) 
^~~~~~~~~ 
FTLogLevel 
  /mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/../../../../Src/ftlog/api/c++/FTLogDef.h:46:3: note: 'FTLogLevel' declared here 
} FTLogLevel; 
^ 
/mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:224:10: error: use of undeclared identifier 'xlogger_IsEnabledFor' 
if (!xlogger_IsEnabledFor((TLogLevel)level)) 
^ 
/mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:232:5: error: unknown type name 'XLoggerInfo' 
XLoggerInfo info; 
^ 
/mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:233:19: error: unknown type name 'TLogLevel'; did you mean 'FTLogLevel'? 
info.level = (TLogLevel)level; 
^~~~~~~~~ 
FTLogLevel 
  /mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/../../../../Src/ftlog/api/c++/FTLogDef.h:46:3: note: 'FTLogLevel' declared here 
} FTLogLevel; 
^ 
/mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:247:32: error: unknown type name 'TLogLevel'; did you mean 'FTLogLevel'? 
if (!xlogger_IsEnabledFor((TLogLevel)level)) 
^~~~~~~~~ 
FTLogLevel 
  /mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/../../../../Src/ftlog/api/c++/FTLogDef.h:46:3: note: 'FTLogLevel' declared here 
} FTLogLevel; 
^ 
/mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:247:10: error: use of undeclared identifier 'xlogger_IsEnabledFor' 
if (!xlogger_IsEnabledFor((TLogLevel)level)) 
^ 
/mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:262:23: error: unknown type name 'TLogLevel'; did you mean 'FTLogLevel'? 
xlogger_SetLevel((TLogLevel)level); 
^~~~~~~~~ 
FTLogLevel 
  /mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/../../../../Src/ftlog/api/c++/FTLogDef.h:46:3: note: 'FTLogLevel' declared here 
} FTLogLevel; 
^ 
/mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:262:5: error: use of undeclared identifier 'xlogger_SetLevel' 
xlogger_SetLevel((TLogLevel)level); 
^ 
/mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:266:34: error: unknown type name 'TLogLevel'; did you mean 'FTLogLevel'? 
return xlogger_IsEnabledFor((TLogLevel)level); 
^~~~~~~~~ 
FTLogLevel 
  /mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/../../../../Src/ftlog/api/c++/FTLogDef.h:46:3: note: 'FTLogLevel' declared here 
} FTLogLevel; 
^ 
/mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp:266:12: error: use of undeclared identifier 'xlogger_IsEnabledFor' 
return xlogger_IsEnabledFor((TLogLevel)level); 
^ 
15 errors generated. 
make[2]: *** [CMakeFiles/f3clog.dir/build.make:63: CMakeFiles/f3clog.dir/mnt/d/harmonyos-sdk/FTLog/Src/ftlog/api/c++/FTLog.cpp.o] Error 1 
make[2]: Leaving directory '/mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/64build' 
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/f3clog.dir/all] Error 2 
make[1]: Leaving directory '/mnt/d/harmonyos-sdk/FTLog/Proj/HarmonyOS/FTLog/cpp/64build' 
make: *** [Makefile:84: all] Error 2
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.

问题二:为什么会出现。

error: field has incomplete type 'struct timeval'     struct timeval timeval;
  • 1.

必须要手动#include <sys/time.h>才能解决这个错误。

HarmonyOS
2024-09-12 11:44:05
876浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
FengTianYa

1、当前HarmonyOS已经提供mars库:https://gitee.com/openharmony-sig/mars

2、编译什么能力的时候报错sys/time.h的依赖找不到?可以检查以下当前sys目录下面是否有time.h这个文件?

3、__BEGIN_DECLS 和 _END_DECLS通常用来定义extern"C" {,所以能否直接把__BEGIN_DECLS 和 __END_DECLS替换成__BEGIN_EXTERN_C 和 __END_EXTERN_C要看__BEGIN_EXTERN_C 和 __END_EXTERN_C的定义是否也是如此。

分享
微博
QQ
微信
回复
2024-09-12 16:45:30
相关问题
HarmonyOS tencent mars适配问题
1281浏览 • 1回复 待解决
HarmonyOS有移植mars吗?
1765浏览 • 1回复 待解决
HarmonyOS 加密NDK
810浏览 • 1回复 待解决
HarmonyOS NDK 运行编译报错
1259浏览 • 1回复 待解决
HarmonyOS NDK编译错误
1301浏览 • 1回复 待解决
HarmonyOS NDK提供:boringssl
761浏览 • 1回复 待解决
HarmonyOS 编译失败问题
1264浏览 • 1回复 待解决
HarmonyOS 使用hvigorw编译失败
1064浏览 • 1回复 待解决
NDK开发是否有提供交叉编译工具
2614浏览 • 1回复 待解决
HarmonyOS 引入har编译失败
1081浏览 • 1回复 待解决
编译release包失败
1265浏览 • 1回复 待解决
HarmonyOS windows系统下编译失败
1015浏览 • 0回复 待解决
HarmonyOS RN empty project编译失败
871浏览 • 1回复 待解决
HarmonyOS 新增申请权限编译失败
719浏览 • 1回复 待解决
HarmonyOS NDK里面有无内置的网络
816浏览 • 1回复 待解决
HarmonyOS flutter build hap --debug编译失败
944浏览 • 1回复 待解决
HarmonyOS react-native应用编译失败
877浏览 • 1回复 待解决