Tôi đã theo chương trình đơn giản:biểu tượng Không xác định "bắt đầu", trong khi liên kết chương trình D qua LD
import std.stdio;
int main(string[] argv) {
writeln("Hello, world!");
return 0;
}
Tôi đang xây dựng nó như sau:
DMD -c -m64 -od/proj/out -w -wi -fPIC -debug \
-g -I/proj/hello -unittest /proj/hello.d
LD -L/usr/share/dmd/lib/ -arch x86_64 -execute -macosx_version_min 10.7 \
-pie -lm -lpthread -lphobos2 -o /proj/out/hello_app /proj/out/hello.o
Compilation đi một cách hoàn hảo, nhưng liên kết với stucks như sau:
Undefined symbols for architecture x86_64:
"start", referenced from:
-u command line option
(maybe you meant: _D3std9algorithm41__T10startsWithVAyaa6_61203d3d2062TAhTAhZ10startsWithFAhAhZb, _D4core6thread6Thread5startMFZv , _D3std9algorithm91__T10startsWithVAyaa11_62203c20612e74696d6554TAS3std8datetime13PosixTimeZone10TransitionTlZ10startsWithFAS3std8datetime13PosixTimeZone10TransitionlZb , _D3std9algorithm43__T10startsWithVAyaa6_61203d3d2062TAyaTAyaZ10startsWithFAyaAyaZb , _D3std9algorithm41__T10startsWithVAyaa6_61203d3d2062TAxaTaZ10startsWithFAxaaZb , _D3std9algorithm92__T10startsWithVAyaa11_62203c20612e74696d6554TAS3std8datetime13PosixTimeZone10LeapSecondTylZ10startsWithFAS3std8datetime13PosixTimeZone10LeapSecondylZb , _D3std9algorithm92__T10startsWithVAyaa11_62203c20612e74696d6554TAS3std8datetime13PosixTimeZone10TransitionTylZ10startsWithFAS3std8datetime13PosixTimeZone10TransitionylZb)
ld: symbol(s) not found for architecture x86_64
Tôi đoán tôi đã quên một số thư viện tĩnh bổ sung để liên kết với nó để thiết lập mọi thứ g, nhưng chính xác thì sao?
Ngoài ra tôi đã thấy hướng dẫn về cách thực hiện biên dịch riêng lẻ và liên kết ở đâu đó trên trang web dlang, nhưng không thể tìm thấy nó.
UPD1: Khi liên kết với sự trợ giúp của GCC sử dụng gcc -L/usr/share/dmd/lib/ -lphobos2 -lm -lpthread hello.o
, nó hoạt động, nhưng tôi cần sử dụng ld
.