|
From: | Chris Wj |
Subject: | Re: [igraph] Building igraph 0.6 rev 1601 with msvc9 |
Date: | Mon, 3 Aug 2009 19:51:21 -0400 |
I added #include "igraph_math.h" to foreign-ncol-parser.c, foreign-lgl-parser.c, bliss_bignum.hh, and centrality.c
Also added the definition for igraph_i_snprintf under the
'#ifdef _MSC_VER' and after '#define snprintf igraph_i_snprintf'
All dependencies resolved... NICE!On Sat, Aug 1, 2009 at 9:23 PM, Chris Wj <address@hidden> wrote:
Ok I spoke too soon.
From: http://msdn.microsoft.com/en-us/library/cx3b23a3(VS.80).aspxJust make sure that jives with what you want, especially that "at the compiler's discretion" part.C Language ReferenceInline Functions
Microsoft Specific
The __inline keyword tells the compiler to substitute the code within the function definition for every instance of a function call. However, substitution occurs only at the compiler's discretion. For example, the compiler does not inline a function if its address is taken or if it is too large to inline.
For a function to be considered as a candidate for inlining, it must use the new-style function definition.
On Sat, Aug 1, 2009 at 9:20 PM, Chris Wj <address@hidden> wrote:>From http://msdn.microsoft.com/en-us/library/z8y1yy88(VS.80).aspx
The inline keyword is available only in C++. The __inline and __forceinline keywords are available in both C and C++. For compatibility with previous versions, _inline is a synonym for __inline.
That's the C++ documentation. They don't even mention __inline in the C documentation part.On Sat, Aug 1, 2009 at 9:12 PM, Chris Wj <address@hidden> wrote:
Thanks for the updates Tamas, they will help out. There were a few other files missing from the msvc project that I added. They were relatively easy to pick out through trial and error though. I'll post/upload the project file when I have the last unresolved symbol figured out.
Yeah, while inline is a C99 standard keyword it seems like in MSVC only C++ recognizes inline, but C recognizes __inline. After a quick web search, it looks like many others had this issue too. They basically did the same thing you did to redefine inline to __inline. I'd still like to know why!
On Sat, Aug 1, 2009 at 4:11 PM, Tamas Nepusz <address@hidden> wrote:Fixed as well -- added M_SQRT2 to igraph_math.h and included it from src/centrality.c. I'm not sure about the inline stuff -- I thought that inline is a valid C keyword, but it looks like we have to live with a compiler-related hack here. Something like:Hi guys. I just built igraph 0.6 from bzr rev 1601 on Windows with msvc9 (VS 2008). I had to make changes in 2 files:
#if defined(_MSC_VER)
# define inline __inline
#endif
I added the above code snippet to src/heap.c, hope this helps.
--
Tamas
_______________________________________________
igraph-help mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/igraph-help
[Prev in Thread] | Current Thread | [Next in Thread] |