My UDF compiles in Linux, but I cannot compile it in Windows. Why?
This behavior is mostly due to the fact the Visual C++ compiler is stricter with non-standard C features than the gcc compiler used in Linux. In particular, the most commonly (mis)-used extension is the presence of executable statements before all declarations. Hence while
DEFINE_ON_DEMAND(show_difference) { Message('This is an executable statementn'); real x = 5; Message('The value of x is %fn', x); } compiles and behaves as expected in Linux, the windows compiler produces an error. Converting this to DEFINE_ON_DEMAND(no_difference) { real x = 5; Message('This is an executable statementn'); Message('The value of x is %fn', x); } will allow it to be compiled and run on both platforms. |
||
![]()
|