0

这是 dart-sqlite:https ://github.com/sam-mccall/dart-sqlite

尝试构建它,因为我需要 32 位版本。也有可能在32位中获得它吗?

我设置了 dart-sdk 的路径,设置了 sqlite 源的路径并尝试构建:

D:\Contrib\dart-sqlite>build
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

dart_sqlite.cc
src\dart_sqlite.cc(42) : error C3861: 'Dart_NewString': identifier not found
src\dart_sqlite.cc(43) : error C3861: 'Dart_NewString': identifier not found
src\dart_sqlite.cc(44) : error C3861: 'Dart_NewString': identifier not found
src\dart_sqlite.cc(97) : error C3861: 'Dart_NewString': identifier not found
src\dart_sqlite.cc(121) : error C3861: 'Dart_NewString': identifier not found
src\dart_sqlite.cc(123) : error C3861: 'Dart_NewString': identifier not found
src\dart_sqlite.cc(124) : error C3861: 'Dart_NewString': identifier not found
src\dart_sqlite.cc(195) : error C3861: 'Dart_NewString': identifier not found
src\dart_sqlite.cc(229) : error C3861: 'Dart_NewString': identifier not found
src\dart_sqlite.cc(266) : error C3861: 'Dart_IsString8': identifier not found
Generating Code...
Compiling...
sqlite3.c
Generating Code...

我必须切换编译器..吗?还是有什么我想念的?

4

2 回答 2

2

在我们的代码中,大多数 Dart_NewString 的使用都被一个实用函数 NewString 所取代:

// Create a new Dart String object from a C String.
static Dart_Handle NewString(const char* str) {
  ASSERT(str != NULL);
  return Dart_NewStringFromUTF8(reinterpret_cast<const uint8_t*>(str),
                                strlen(str));
}

你可以在 dart_sqlite 中包含这个实用函数,或者直接使用 Dart_NewStringFromUTF8。

可能还有其他问题,因为 Dart 可执行文件现在包含 sqlite 库,作为 NSS(网络安全服务,来自 Mozilla)的一部分,用于在 dart:io 中实现安全套接字。

于 2012-11-19T08:58:55.577 回答
1

快速浏览一下最新的 sdk 头文件 Dart_NewString 已经不存在了。以下签名可用,因此您可能需要更新 sam 的代码。

16:53:48-adam@Adams-MacBook-Air:~/dart_bleeding/dart/runtime/include
$ grep -r Dart_NewString *
dart_api.h:DART_EXPORT Dart_Handle Dart_NewStringFromCString(const char* str);
dart_api.h:DART_EXPORT Dart_Handle Dart_NewStringFromUTF8(const uint8_t* utf8_array,
dart_api.h:DART_EXPORT Dart_Handle Dart_NewStringFromUTF16(const uint16_t* utf16_array,
dart_api.h:DART_EXPORT Dart_Handle Dart_NewStringFromUTF32(const uint32_t* utf32_array,
于 2012-11-17T00:54:22.427 回答