digitalmars.D.learn - Re: Help learning how to interface with c(++)
- Kagamin <spam here.lot> Mar 08 2011
Kai Meyer Wrote:gcc -m32 -shared -fPIC Test.cpp -o libTest.so
So I monkeyed around a little bit, and found out that if I change "extern (C)" to "extern (C++)", the library links correctly and the program runs. That lead me to believe that if I added the "-cpp" option to htod.exe, it would generate extern(C++) functions. But I got a blank Test.d file doing it that way. So, gcc created a libTest.so with a function in it, and dmd only finds the function with extern(C++) and not with extern(C). Now I'm just confused, yet pleased something worked.
Because you compile .cpp file, gcc compiles it with g++ as C++ and mangles functions accordingly. You can tell gcc to compile the file as C.
Mar 08 2011