Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Status of Inline::CPP on Activeperl 5.10/Visual C++ 6

by almut (Canon)
on Sep 16, 2009 at 13:31 UTC ( [id://795611]=note: print w/replies, xml ) Need Help??


in reply to Status of Inline::CPP on Activeperl 5.10/Visual C++ 6

... illegal pure syntax, must be '= 0'

I'm no Windows gal, but IIRC, the issue with VC++ 6 is that it doesn't accept initialisations like:

class X { static const int x = 99; // ... };

VC6 is just too old / not standards-compliant. The workaround would be (I think) to initialise static const members outside of the class

class X { static const int x; // ... }; const int X::x = 99;

Good luck :)

Replies are listed 'Best First'.
Re^2: Status of Inline::CPP on Activeperl 5.10/Visual C++ 6
by ikegami (Patriarch) on Sep 16, 2009 at 14:30 UTC

    Correct.

    >cl /c test1.cpp Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for +80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. test1.cpp test1.cpp(2) : error C2258: illegal pure syntax, must be '= 0' test1.cpp(2) : error C2252: 'x' : pure specifier can only be specified + for functions >cl /c test2.cpp Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for +80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. test2.cpp >
Re^2: Status of Inline::CPP on Activeperl 5.10/Visual C++ 6
by mwah (Hermit) on Sep 16, 2009 at 14:04 UTC
    Thank you for your response. In spite of not
    making the test suite, I gave it (Inline::CPP) a try. First
    Program, as described in the Examples compiled,
    but segfaulted the perl core on program return with:
    Free to wrong pool 235e38 not b01f4.
    Another test, using an already compiled library and an include path for using the respective functions, like:
    use strict; use warnings; use Inline 'CPP'; use Inline CPP => Config => INC => '/I C:\\some\\tools\\' => LIBS => '/libpath:"C:\\some\\tools\\bin"' => LIBS => 'important.lib' ; my $n = ask_important_lib('question'); print $n; __END__ __CPP__ #include "important.h" int ask_important_lib(char* question) { SOMECLASS var(question); if( var.errorstatus() ) { printf("we got an error %d on question %s!\n", var.errorstatus(), +question); return -1; } return 1; }

    The above wouldn't even start to compile, nmake (1.5) will complain:

    ... makefile(878) : fatal error U1083: target macro '$(OBJECT)' expands t +o nothing ...

    So I throwed the towel. This seems to be completely non-workable on anything non-trivial C++ problem.

    BTW: I tried similar w/Ruby's RubyInline on
    Ruby 1.9 - also w/Visual C++ 6.

    Almost the same result. Some trivial things work,
    but anything referencing external include files
    or libs won't work (at least with Visual C++ 6, the
    system the actual Ruby 1.9.1 binary for win32 is built
    ).

    Thanks & regards

    mwa

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://795611]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2024-04-19 07:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found