首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的Swift Lambda for AWS运行良好,直到我添加了URLSession

我的Swift Lambda for AWS运行良好,直到我添加了URLSession
EN

Stack Overflow用户
提问于 2021-10-26 09:56:16
回答 1查看 38关注 0票数 0

我有一个Swift Lambda为AWS做的。我可以在本地Xcode中运行它,也可以使用Docker和Docker构建脚本部署到AWS。

如果我将URLSession()添加到我的代码中,我仍然可以通过Xcode在本地运行它,但是Docker构建中断了:

代码语言:javascript
复制
[35/36] Compiling HelloWorld main.swift

/usr/bin/ld.gold: error: cannot find -lcurl

/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionEasyCodeDescription: error: undefined reference to 'curl_easy_strerror'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionEasyHandleInit: error: undefined reference to 'curl_easy_init'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionEasyHandleDeinit: error: undefined reference to 'curl_easy_cleanup'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionEasyHandleSetPauseState: error: undefined reference to 'curl_easy_pause'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionMultiHandleInit: error: undefined reference to 'curl_multi_init'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionMultiHandleDeinit: error: undefined reference to 'curl_multi_cleanup'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionMultiHandleAddHandle: error: undefined reference to 'curl_multi_add_handle'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionMultiHandleRemoveHandle: error: undefined reference to 'curl_multi_remove_handle'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionMultiHandleAssign: error: undefined reference to 'curl_multi_assign'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionMultiHandleAction: error: undefined reference to 'curl_multi_socket_action'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionMultiHandleInfoRead: error: undefined reference to 'curl_multi_info_read'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSession_easy_setopt_ptr: error: undefined reference to 'curl_easy_setopt'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSession_easy_setopt_int: error: undefined reference to 'curl_easy_setopt'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSession_easy_setopt_long: error: undefined reference to 'curl_easy_setopt'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSession_easy_setopt_int64: error: undefined reference to 'curl_easy_setopt'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSession_easy_getinfo_long: error: undefined reference to 'curl_easy_getinfo'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSession_easy_getinfo_double: error: undefined reference to 'curl_easy_getinfo'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSession_easy_getinfo_charp: error: undefined reference to 'curl_easy_getinfo'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSession_multi_setopt_ptr: error: undefined reference to 'curl_multi_setopt'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSession_multi_setopt_l: error: undefined reference to 'curl_multi_setopt'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSession_multi_setopt_sf: error: undefined reference to 'curl_multi_setopt'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSession_multi_setopt_tf: error: undefined reference to 'curl_multi_setopt'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionInit: error: undefined reference to 'curl_global_init'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionCurlVersionString: error: undefined reference to 'curl_version'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionCurlVersionInfo: error: undefined reference to 'curl_version_info'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionSListAppend: error: undefined reference to 'curl_slist_append'
/usr/lib/swift_static/linux/libCFURLSessionInterface.a(CFURLSessionInterface.c.o):CFURLSessionInterface.c:function CFURLSessionSListFreeAll: error: undefined reference to 'curl_slist_free_all'
clang-10: error: linker command failed with exit code 1 (use -v to see invocation)
<unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)

[35/36] Linking HelloWorld

我正在使用这个构建脚本:

代码语言:javascript
复制
docker run \
    --rm \
    --volume "$(pwd)/:/src" \
    --workdir "/src/" \
    swift:5.3.1-amazonlinux2 \
    swift build --product HelloWorld -c release -Xswiftc -static-stdlib

我也尝试过5.4.3和5.5.0 -amazonlinux2,但它们都给出了一组不同的错误。(如果有帮助,我可以提供这些)

我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2021-10-27 03:22:54

我把它弄好了:

代码语言:javascript
复制
docker run \
  --rm \
  --volume "$(pwd)/:/src" \
  --workdir "/src/" \
  swift:5.3.1-amazonlinux2 \
  /bin/bash -c "yum install -y libcurl-devel && \
  swift build --product HelloWorld -c release -Xswiftc -static-stdlib"

这将安装成功链接所需的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69721017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档