undefined reference to "main"

FeepingCreature feepingcreature at gmail.com
Wed Apr 5 09:28:17 UTC 2023


On Wednesday, 5 April 2023 at 09:19:17 UTC, Alexander Zhirov 
wrote:
> How to compile the example given in the book correctly? When 
> compiling, an error occurs that the main function is missing. 
> If I replace `shared static this()` with `void main()', then 
> everything starts. What does the compilation string in `dub` 
> and `dmd` look like correctly?
>
> ```d
> import vibe.d;
>
> shared static this()
> {
>   auto settings = new HTTPServerSettings;
>   settings.port = 8080;
>   settings.bindAddresses = ["::1", "127.0.0.1"];
>   listenHTTP(settings, &hello);
>
>   logInfo("Please open http://127.0.0.1:8080/ in your 
> browser.");
> }
>
> void hello(HTTPServerRequest req, HTTPServerResponse res)
> {
>   res.writeBody("Hello, World!");
> }
> ```

This seems to work for me:

```d
/+ dub.json: {
     "name": "test",
     "dependencies": {
         "vibe-d": "*"
     }
} +/
import vibe.d;

shared static this()
{
   auto settings = new HTTPServerSettings;
   settings.port = 8080;
   settings.bindAddresses = ["::1", "127.0.0.1"];
   listenHTTP(settings, &hello);

   logInfo("Please open http://127.0.0.1:8080/ in your browser.");
}

void main() {
     runApplication;
}

void hello(HTTPServerRequest req, HTTPServerResponse res)
{
   res.writeBody("Hello, World!");
}
```

Run with

```
dub run --single test.d
```


More information about the Digitalmars-d-learn mailing list