我想在Ubuntu环境中拥有一个可执行的GRPC客户端。为此,我有以下Package.swift
// swift-tools-version:5.1
// The swift-tools-version declares the minimum version of Swift required to build this
package.
import PackageDescription
let package = Package(
name: "grpc_client",
dependencies: [
.package(url: "https://github.com/grpc/grpc-swift.git", from: "1.0.0-alpha.6")
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "grpc_client",
dependencies: ["GRPC"]),
.testTarget(
name: "grpc_clientTests",
dependencies: ["grpc_client"]),
]
)
我从* .proto文件中生成了* .pb.swift和* .grpc.swift,并将这些文件放入Source文件夹。但是,当我致电swift build
时,出现以下错误:
no such module 'SwiftGRPC'
import SwiftGRPC
来自两个已生成的* .swift文件的。看来我必须提供这样的导入路径或smth,但我不确定。
如何解决此问题?
答案 0 :(得分:0)
只是找到了解决方案-也许对环境类似的人会有所帮助。
您需要从中删除static long gettid(void) { return syscall(__NR_gettid); }
Sources / CgRPC / src / core / lib / gpr / log_linux.cc b / Sources / CgRPC / src / core / lib / gpr / log_linux.cc和
Sources / CgRPC / src / core / lib / iomgr / ev_epollex_linux.cc b / Sources / CgRPC / src / core / lib / iomgr / ev_epollex_linux.cc
由于glibc版本较新。
添加项目依赖项的正确方法是
.target( 名称:“ grpc_client”, 依赖项:[“ SwiftGRPC”]),
但不是回购自述文件中所述的GRPC
。