gpt4 book ai didi

d - 在 Mac 上使用 D 的 std.net.curl 时出现 libcurl 问题

转载 作者:行者123 更新时间:2023-12-01 11:44:17 26 4
gpt4 key购买 nike

我正在努力加快在 Mac 上使用 libcurl 和 D 的速度。

我正在使用最新的 dmd2 编译器 (DMD64 D Compiler v2.062)。

以下示例在 Windows 上编译并运行良好:

导入 std.net.curl, std.conv, std.stdio;

void main() {
string content = to!string(get("dlang.org"));
writeln(content);
}

在 Mac 上编译时,我得到以下输出:

~/src $ dmd dcurl.d
Undefined symbols for architecture x86_64:
"_curl_easy_cleanup", referenced from:
_D3std3net4curl4Curl8shutdownMFZv in libphobos2.a(curl_1522_37c.o)
"_curl_easy_duphandle", referenced from:
_D3std3net4curl4Curl3dupMFZS3std3net4curl4Curl in libphobos2.a(curl_151e_149.o)
"_curl_easy_init", referenced from:
_D3std3net4curl4Curl10initializeMFZv in libphobos2.a(curl_151d_432.o)
"_curl_easy_perform", referenced from:
_D3std3net4curl4Curl7performMFbZi in libphobos2.a(curl_1528_2fb.o)
"_curl_easy_setopt", referenced from:
_D3std3net4curl4Curl3setMFE3etc1c4curl10CurlOptionlZv in libphobos2.a(curl_1525_14c.o)
_D3std3net4curl4Curl3setMFE3etc1c4curl10CurlOptionAxaZv in libphobos2.a(curl_1524_14c.o)
_D3std3net4curl4Curl3setMFE3etc1c4curl10CurlOptionPvZv in libphobos2.a(curl_1526_14c.o)
_D3std3net4curl4Curl5clearMFE3etc1c4curl10CurlOptionZv in libphobos2.a(curl_1527_207.o)
"_curl_easy_strerror", referenced from:
_D3std3net4curl4Curl11errorStringMFiZAya in libphobos2.a(curl_1520_4a1.o)
"_curl_global_cleanup", referenced from:
_D3std3net4curl4Curl19_sharedStaticDtor29FZv in libphobos2.a(curl.o)
"_curl_global_init", referenced from:
_D3std3net4curl4Curl19_sharedStaticCtor28FZv in libphobos2.a(curl.o)
"_curl_slist_append", referenced from:
_D3std3net4curl3FTP3dupMFZS3std3net4curl3FTP in libphobos2.a(curl_1518_ea.o)
_D3std3net4curl3FTP10addCommandMFAxaZv in libphobos2.a(curl_1518_ea.o)
_D3std3net4curl4HTTP3dupMFZS3std3net4curl4HTTP in libphobos2.a(curl_1517_140.o)
_D3std3net4curl4HTTP16addRequestHeaderMFAxaAxaZv in libphobos2.a(curl_1517_140.o)
"_curl_slist_free_all", referenced from:
_D3std3net4curl3FTP4Impl6__dtorMFZv in libphobos2.a(curl_1518_ea.o)
_D3std3net4curl3FTP13clearCommandsMFZv in libphobos2.a(curl_1518_ea.o)
_D3std3net4curl4HTTP4Impl6__dtorMFZv in libphobos2.a(curl_1517_140.o)
_D3std3net4curl4HTTP19clearRequestHeadersMFZv in libphobos2.a(curl_1517_140.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
--- errorlevel 1

这似乎意味着链接问题。

我有 libcurl 在:/usr/lib/libcurl.3.dylib/usr/lib/libcurl.4.dylib/usr/lib/libcurl.dylib

但我什至不确定 dmd 是否正在尝试使用它们。

我以前用 C/C++ 做过这个(在使用这些库的同一台机器上)所以我认为这一定是版本控制问题,否则我需要将一些标志传递给编译器。

如有任何帮助,我们将不胜感激。

最佳答案

您需要针对 libcurl 进行链接。默认情况下它没有链接。所以,而不是

dmd dcurl.d

你需要做的

dmd -L-lcurl dcurl.d

关于d - 在 Mac 上使用 D 的 std.net.curl 时出现 libcurl 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16875539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com