[CMake] Re: [vtkusers] error: cmake + free optimizing compiler from .net framework SDK --- x86 conflicts with x64 (fwd)

Weiguang Guan guanw at rhpcs.mcmaster.ca
Wed Dec 6 16:05:27 EST 2006


Hi Mathieu,

I am working directly on Windows XP rather than on Cygwin layer. I think this 
might be a cmake issue, because the error message box appears after I hit the 
"Configure" button of CMake, and the same error message pops up when 
configuring an ITK build with cmake.

The error message seems coming from CMakeTestCCompiler.cmake, in which a simple 
c program (see below) is generated on the fly and compiled.

#ifdef __cplusplus
# error "The CMAKE_C_COMPILER is set to a C++ compiler"
#endif
#include <stdio.h>
#if defined(__CLASSIC_C__)
int main(argc, argv)
   int argc;
   char* argv[];
#else
int main(int argc, char* argv[])
#endif
{ printf("%s\\n", argv[0]); return argc-1;}

I manually saved it into a file and got it compiled and linked. It worked fine. 
Can anyone explain why cmake thinks "it is not able to compile a simple test 
program"?

-- 
========================================================
Weiguang Guan, Research Engineer
RHPCS, McMaster University
========================================================

On Wed, 6 Dec 2006, Mathieu Malaterre wrote:

> Weiguang Guan wrote:
>> Hi,
>> 
>> I wanted to make use of the free C/C++ command line compiler that comes with 
>> microsoft's .net framework SDK 2.0 (platform SDK is installed as well). When 
>> I was using CMake to configure VTK5.0 on a x86 machine, I chose "NMake 
>> Makefile". But the C compiler failed to compile a simple test program, 
>> complaining "fatal error LNK1112: module machine type 'X86' conflicts with 
>> target machine type 'X64'. I have no idea why it considered my computer to 
>> be x64, and it didn't help at all even if I changed /machine:x64 to 
>> /machine:/x86 in CMAKE_EXE_LINKER_FLAGS. Anybody had similar experience or 
>> had suggestion to this situation? Thanks.
> 
> Weiguang,
>
> 	Here is the script I am using (bash+cygwin):
> 
> export PATH='/cygdrive/c/Program Files/CMake 2.4/bin/:/cygdrive/c/Program 
> Files/Microsoft Visual C++ Toolkit 2003/bin:/cygdrive/c/Program 
> Files/Microsoft Platform SDK for Windows Server 2003 
> R2/Bin:/cygdrive/c/Program Files/Microsoft Platform SDK for Windows Server 
> 2003 R2/Bin/win64':$PATH
> export LIB="C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;C:\Program 
> Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib"
> export INCLUDE="C:\Program Files\Microsoft Visual C++ Toolkit 
> 2003\include;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 
> R2\Include"
> 
> 
>
> 	Please check that you have something similar. Once this script is 
> evaluated (source), run cmake in an empty directory (do not try to rerun in a 
> old binary directory).
> 
> HTH
> Mathieu
>


More information about the CMake mailing list