[Pythonmac-SIG] python.h and veclib.h incompatible?
Brian Clarkson
clarkson at csl.sony.co.jp
Tue Jan 25 03:31:36 CET 2005
Hello.
I was swig'ing an extension that made use of veclib in its internals
and discovered that if python.h is included before veclib.h that
compilation will not succeed. It seems they are interacting so that
parts of fp.h are being left out when they shouldn't be.
I have distilled the problem down to the following simple test case:
****begin test.cpp****
#include <python.h>
#include<veclib/veclib.h>
#include<iostream>
using namespace std;
int main(){
cerr << scalb(3,4) << endl;
return 0;
}
****end test.cpp****
Which when compiled as follows:
gcc -I/sw/include/python2.3 -c test.cpp
gives the following errors:
In file included from /sw/include/python2.3/python.h:70,
from test.cpp:1:
/sw/include/python2.3/objimpl.h:255: warning: use of `long double'
type; its
size may change in a future release
/sw/include/python2.3/objimpl.h:255: warning: (Long double usage is
reported
only once for each file.
/sw/include/python2.3/objimpl.h:255: warning: To disable this warning,
use
-Wno-long-double.)
In file included from
/System/Library/Frameworks/CoreServices.framework/Frameworks/
CarbonCore.framework/Headers/CarbonCore.h:165,
from
/System/Library/Frameworks/CoreServices.framework/Headers/
CoreServices.h:21,
from
/System/Library/Frameworks/veclib.framework/Headers/veclib.h:20,
from test.cpp:2:
/System/Library/Frameworks/CoreServices.framework/Frameworks/
CarbonCore.framework/Headers/fp.h: In
function `long double scalbl(long double, long int)':
/System/Library/Frameworks/CoreServices.framework/Frameworks/
CarbonCore.framework/Headers/fp.h:1896: error: `
scalb' undeclared (first use this function)
/System/Library/Frameworks/CoreServices.framework/Frameworks/
CarbonCore.framework/Headers/fp.h:1896: error: (Each
undeclared identifier is reported only once for each function it
appears
in.)
Other than refactoring in order to hide veclib.h from python.h, does
anyone have any fixes for this?
Thanks in advance!
Brian
More information about the Pythonmac-SIG
mailing list