Hi developers,
has anybody ever tried to use the Intel C++ compiler for Pd under Win? I just tried but noticed one anomaly:
When compiling I get the following warning for every EXTERN_STRUCT definition:
warning #1128: a storage class may not be specified here
Changing the definition in m_pd.h seems to help (I don't get the warning any longer):
/* and depending on the compiler, hidden data structures are declared differently: */ #ifdef __GNUC__ #define EXTERN_STRUCT struct #else #ifdef IA32 /* Intel IA32 compiler */ #define EXTERN_STRUCT struct #else /* non-GNU compiler */ #define EXTERN_STRUCT extern struct #endif #endif
It's also necessary to define "IA32" for the compiler to get the above code working... (maybe the compiler identifies itselfe by it's own but I couldn't find any hints)
In the end it seems that this compiler reduces CPU usage a bit (on my P4 with compiler options G7 and QaxW set). More tests have to show if it's worth the effort. I should probably recompile all libraries as well...
I could upload a version of Pd0.35 compiled with this compiler in case someone is interested or is willing to test the amount of optimization one gets in real 'on-stage' situations.
Olaf
Hi, it seems that the MSVC++ is the only compiler that wants the "extern struct" specifier.....
so maybe, the definition should be changed to
#ifdef _MSC_VER #define EXTERN_STRUCT extern struct #else #define EXTERN_STRUCT struct #endif
greetings, Thomas
Changing the definition in m_pd.h seems to help (I don't get the warning any longer):
/* and depending on the compiler, hidden data structures are declared differently: */
#ifdef __GNUC__ #define EXTERN_STRUCT struct #else #ifdef IA32 /* Intel IA32 compiler */ #define EXTERN_STRUCT struct #else /* non-GNU compiler */ #define EXTERN_STRUCT extern struct #endif #endif
It's also necessary to define "IA32" for the compiler to get the above code working... (maybe the compiler identifies itselfe by it's own but I couldn't find any hints)
In the end it seems that this compiler reduces CPU usage a bit (on my P4 with compiler options G7 and QaxW set). More tests have to show if it's worth the effort. I should probably recompile all libraries as well...
I could upload a version of Pd0.35 compiled with this compiler in case someone is interested or is willing to test the amount of optimization one gets in real 'on-stage' situations.
Olaf
PD-dev mailing list PD-dev@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-dev
Hi Thomas and list,
the Intel compiler has "_MSC_VER" predefined for compatibility reasons as it says in the docs. That's why your suggestion does not work. So I would suggest to change line 29 of m_pd.h to the following:
#if defined(__GNUC__) || defined(__BORLANDC__) || defined(__INTEL_COMPILER)
This incorporates your suggestion concerning the Borland compiler and works for the Intel compiler as well.
Olaf
Thomas Grill schrieb:
Hi, it seems that the MSVC++ is the only compiler that wants the "extern struct" specifier.....
so maybe, the definition should be changed to
#ifdef _MSC_VER #define EXTERN_STRUCT extern struct #else #define EXTERN_STRUCT struct #endif
greetings, Thomas
Changing the definition in m_pd.h seems to help (I don't get the warning any longer):
/* and depending on the compiler, hidden data structures are declared differently: */
#ifdef __GNUC__ #define EXTERN_STRUCT struct #else #ifdef IA32 /* Intel IA32 compiler */ #define EXTERN_STRUCT struct #else /* non-GNU compiler */ #define EXTERN_STRUCT extern struct #endif #endif
It's also necessary to define "IA32" for the compiler to get the above code working... (maybe the compiler identifies itselfe by it's own but I couldn't find any hints)
In the end it seems that this compiler reduces CPU usage a bit (on my P4 with compiler options G7 and QaxW set). More tests have to show if it's worth the effort. I should probably recompile all libraries as well...
I could upload a version of Pd0.35 compiled with this compiler in case someone is interested or is willing to test the amount of optimization one gets in real 'on-stage' situations.
Olaf
PD-dev mailing list PD-dev@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-dev
hello,
i am back at the start of the c/c++ learning curve and i'm compiling the IDelay example of Flext with flext0.3.0
using MSVC++ 6.0 i get the error LNK2001: unresolved external symbol _main
i have looked as hard as i can for the answer and have found that you can set a LINK option /NOENTRY to make the linker not look for a _main entry point.
however i don't know how to set the /noentry link option effectively - i looked in project settings and found no gui element to use for /noentry - so i tried adding it to the options in the long text box, but i still get the error.
can anyone help me get over this unresolved _main? do i need the /noentry link flag, or do i need to do something else?
any help much appreciated cheers Nick
Hi Nick, are you using the provided .dsp project file? It should (apart from the various paths) have all the necessary switches set. You can send me your project or make file and i'll see what i can do.
greetings, Thomas
----- Original Message ----- From: "Nick Mariette" nmariette@myrealbox.com To: "pd-dev" pd-dev@iem.kug.ac.at Cc: "Thomas Grill" t.grill@gmx.net Sent: Wednesday, August 14, 2002 8:34 AM Subject: need help compiling FLEXT example in MSVC++6.0 (unresolved external symbol _main)
hello,
i am back at the start of the c/c++ learning curve and i'm compiling the IDelay example of Flext with flext0.3.0
using MSVC++ 6.0 i get the error LNK2001: unresolved external symbol _main
i have looked as hard as i can for the answer and have found that you can set a LINK option /NOENTRY to make the linker not look for a _main entry point.
however i don't know how to set the /noentry link option effectively - i looked in project settings and found no gui element to use for /noentry -
so
i tried adding it to the options in the long text box, but i still get the error.
can anyone help me get over this unresolved _main? do i need the
/noentry
link flag, or do i need to do something else?
any help much appreciated cheers Nick