how to compile d programm with external c function

oliver oliver.ruebenkoenigREM at web.de
Tue Feb 26 00:19:17 PST 2008


meldolion Wrote:

> 
> 
> I tried to use this official page to solve a problem :
> http://www.digitalmars.com/d/2.0/interfaceToC.html
> 
> The problem is there is nothing said about compiling this source.
> 
> I created a main.d and a helloworld.c sourcefile. 
> 
> module main;
> import std.string;
> 
> extern (C)
> {
> void printHelloWorld();
> }
> 
> void main(){
> printHelloWorld();
> }
> 
> 
> 
> 
> 
> helloworld.c
> 
> #include <stdio.h>
> 
> void printHelloWorld(){
> printf("hello world");
> }
> 
> 
> I created the object file for helloworld.c.
> 
> but when i call
> 
> bud_win_3.04.exe main.d helloworld.o 
> 
> i get following error message.
> 
> OPTLINK (R) for Win32 Release 8.00.1
> Copyright (C) Digital Mars 1989-2004 All rights reserved.
> main.obj(main) 
> Error 42: Symbol Undefined _printHelloWorld
> 
> Does anyone knows the solution of this problem?
> 
> thx meldolion

this worked for me:

test.d:
import std.string;

extern (C)
{
void printHelloWorld();
}

void main(){
printHelloWorld();
}


helloworld.c:
#include <stdio.h>

void printHelloWorld(){
printf("hello world");
}


gcc -c helloworld.c
gdc test.d helloworld.o

(also the version with the "module main")

hth,
oliver



More information about the Digitalmars-d-learn mailing list