我是D语言的新手.我试图导入我的自定义类以在main()函数中使用.
项目结构:
DlangApp/app.d
DlangApp/ClassOne.d
Run Code Online (Sandbox Code Playgroud)
ClassOne.d:
import std.stdio;
class ClassOne
{
string firstName;
string lastName;
this(string first, string last)
{
firstName = first;
lastName = last;
}
void writeName()
{
writefln("The name is: %s %s", firstName, lastName);
}
}
Run Code Online (Sandbox Code Playgroud)
app.d:
import std.stdio;
import ClassOne;
void main()
{
auto aNumber = 10;
auto aString = "This is a string.";
writefln("A string: %s\nA number: %s", aString, aNumber);
}
Run Code Online (Sandbox Code Playgroud)
当我运行时dmd -run app.d,我收到此错误消息:
app.obj(app)
Error 42: Symbol Undefined _D8ClassOne12__ModuleInfoZ
---errorlevel 1
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
执行dmd -ofquakkels_app app.d ClassOne.d,如果编译成功,您将获得quakkels_app可执行文件.
或者,如果你真的想使用-run <file> [args...]参数:dmd ClassOne.d -run app.d.请注意,我将-run放在最后 - 因为在-run filename之后,您可能希望将一些要传递给参数的参数传递给应用程序.
现在您可能已经理解为什么会出现上面的编译错误 - 只是DMD没有编译ClassOne.d文件...