[Paraview] Build bug on Windows

Dr. X xunlei at renci.org
Wed Sep 8 11:01:18 EDT 2010


  Hi Dave,
Here is what added to ParaView\Utilities\Xdmf2\CMakeLists.txt
...
SET(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}")

IF(WIN32)
   SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} add 
/NODEFAULTLIB:libcmt")
   SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} add 
/NODEFAULTLIB:libcmt")
ENDIF(WIN32)
...
Would you please commit it to the main branch?

Best,
x

On 9/7/2010 10:17 AM, Dave Partyka wrote:
> You can build dlls (/LD) and at the same time link the static version 
> of the runtime (/MT). It makes it more convenient to distribute shared 
> libraries without also needing to carry around the dynamic runtime 
> dlls (msvcrtxx.dll).
>
> That said, your solution to set the excluded libraries in the project 
> properties should work but can get trampled when CMake regenerates. A 
> slightly better solution would be to use the 
> /NODEFAULTLIB:<library.lib> link flags in CMake to exclude them will 
> also work.
>
> CMAKE_EXE_LINKER_FLAGS add /NODEFAULTLIB:<library.lib>
> CMAKE_SHARED_LINKER_FLAGS add /NODEFAULTLIB:<library.lib>
>
>
> On Mon, Sep 6, 2010 at 5:33 PM, Dr. X <xunlei at renci.org 
> <mailto:xunlei at renci.org>> wrote:
>
>     Hi Dave,
>     I am building against prebuilt MySQL (x64 essential) binary.
>     http://www.mysql.com/downloads/mysql/
>     By examining the size of libmysql.lib, I am pretty sure it is a
>     shared library.
>
>     Best,
>     x
>
>
>     On 9/6/2010 5:26 PM, Dave Partyka wrote:
>>     So you're building ParaView against your own build of sql, or a
>>     prebuilt binary (via XDMF_USE_MYSQL)? Did you build it yourself?
>>     If so, was it built with /MT? Can you provide any more details so
>>     I can try and reproduce the errors?
>>
>>     On Mon, Sep 6, 2010 at 5:08 PM, Dr. X <xunlei at renci.org
>>     <mailto:xunlei at renci.org>> wrote:
>>
>>         Hi Dave,
>>         I guess you were talking about the linking error caused in
>>         Xdmf build, right?
>>         I did only have /MD and /MDd options in ParaView CMake. The
>>         libcmt errors only happen to Xdmf project.
>>         I will do a clean build again to verify.
>>
>>         Best,
>>         x
>>
>>
>>
>>         On 9/6/2010 4:52 PM, Dave Partyka wrote:
>>>         The link errors indicate you're linking things built with
>>>         the static runtime (/MT) and the dynamic runtime (/MD). By
>>>         default CMake uses the /MD Flags. Did you change them to
>>>         /MT? In either case you want them to be the same for
>>>         everything you're trying to build.
>>>
>>>         On Mon, Sep 6, 2010 at 4:46 PM, Dr. X <xunlei at renci.org
>>>         <mailto:xunlei at renci.org>> wrote:
>>>
>>>              Hi All,
>>>             The default build of Xdmf.vcproj have the following bugs:
>>>             ====================================================
>>>             Errors:
>>>             Error 326 error C2146: syntax error : missing ';' before
>>>             identifier 'fd'
>>>             d:\mysql5.1\include\mysql_com.h 243 Xdmf
>>>             Error 327 error C4430: missing type specifier - int
>>>             assumed. Note: C++
>>>             does not support default-int
>>>             d:\mysql5.1\include\mysql_com.h 243 Xdmf
>>>             Error 328 error C4430: missing type specifier - int
>>>             assumed. Note: C++
>>>             does not support default-int
>>>             d:\mysql5.1\include\mysql_com.h 243 Xdmf
>>>             Error 329 error C2065: 'SOCKET' : undeclared identifier
>>>             d:\mysql5.1\include\mysql_com.h 427 Xdmf
>>>             Error 330 error C2146: syntax error : missing ')' before
>>>             identifier 's'
>>>             d:\mysql5.1\include\mysql_com.h 427 Xdmf
>>>             Error 331 error C2059: syntax error : ')'
>>>             d:\mysql5.1\include\mysql_com.h 428 Xdmf
>>>
>>>             Fix:
>>>             Add the following lines in d:\mysql5.1\include\mysql_com.h
>>>
>>>             #if defined(__WIN__)
>>>             #include <WinSock2.h>
>>>             #endif /* __WIN__ */
>>>             ====================================================
>>>             Errors:
>>>             Error 3 error LNK2005: _amsg_exit already defined in
>>>             MSVCRTD.lib(MSVCR90D.dll) LIBCMT.lib Xdmf
>>>             Error 4 error LNK2005: _initterm_e already defined in
>>>             MSVCRTD.lib(MSVCR90D.dll) LIBCMT.lib Xdmf
>>>             Error 5 error LNK2005: exit already defined in
>>>             MSVCRTD.lib(MSVCR90D.dll)
>>>             LIBCMT.lib Xdmf
>>>             ...
>>>
>>>             Fix:
>>>             Add "libcmt" in Xdmf Property Pages -> Configuration
>>>             Properties ->
>>>             Linker -> Input -> Ignore Specific Library for both
>>>             Debug and Release build.
>>>
>>>             For the libcmt errors, how can I patch the corresponding
>>>             CMakeLists.txt
>>>             file? Thanks a lot.
>>>
>>>             Best,
>>>             x
>>>             _______________________________________________
>>>             Powered by www.kitware.com <http://www.kitware.com>
>>>
>>>             Visit other Kitware open-source projects at
>>>             http://www.kitware.com/opensource/opensource.html
>>>
>>>             Please keep messages on-topic and check the ParaView
>>>             Wiki at: http://paraview.org/Wiki/ParaView
>>>
>>>             Follow this link to subscribe/unsubscribe:
>>>             http://www.paraview.org/mailman/listinfo/paraview
>>>
>>>
>>
>>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20100908/ecfa7c52/attachment.htm>


More information about the ParaView mailing list