The other ones seem to be defined as static functions, which may be why they are not also causing errors. Going by the mantra "if is isn't broke, don't fix it", I pushed the simple 2-line change to mangle that single symbol. VTK master should be fixed now.<div>
<br></div><div>Jeff<br><br><div class="gmail_quote">On Mon, Jan 17, 2011 at 12:31 PM, Dean Inglis <span dir="ltr"><<a href="mailto:dean.inglis@camris.ca">dean.inglis@camris.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Jeff,<br>
<br>
If I change the method call to vtk_winCurrentTime (line 28935)<br>
and again on line 29039, then everything links statically. It<br>
is just this one method though, and not all the others defined<br>
in :<br>
<br>
static vtk_sqlite3_vfs winVfs = {<br>
1, /* iVersion */<br>
sizeof(winFile), /* szOsFile */<br>
MAX_PATH, /* mxPathname */<br>
0, /* pNext */<br>
"win32", /* zName */<br>
0, /* pAppData */<br>
winOpen, /* xOpen */<br>
winDelete, /* xDelete */<br>
winAccess, /* xAccess */<br>
winFullPathname, /* xFullPathname */<br>
winDlOpen, /* xDlOpen */<br>
winDlError, /* xDlError */<br>
winDlSym, /* xDlSym */<br>
winDlClose, /* xDlClose */<br>
winRandomness, /* xRandomness */<br>
winSleep, /* xSleep */<br>
vtk_winCurrentTime, /* xCurrentTime */<br>
winGetLastError /* xGetLastError */<br>
};<br>
<br>
Dean<br>
<br>
----- Original Message ----- From: Jeff Baumes<br>
To: Dean Inglis<br>
Cc: <a href="mailto:vtkusers@vtk.org" target="_blank">vtkusers@vtk.org</a><br>
Sent: Monday, January 17, 2011 12:05 PM<br>
Subject: Re: [vtkusers] VTK + Qt sqlite link error<div><div></div><div class="h5"><br>
<br>
<br>
On Mon, Jan 17, 2011 at 10:59 AM, Dean Inglis <<a href="mailto:dean.inglis@camris.ca" target="_blank">dean.inglis@camris.ca</a>> wrote:<br>
<br>
Im trying to build vtk 5.7 and Qt 4.7.1 statically with VS2010 on Win 7, 32<br>
bit.<br>
Qt builds fine but I have run into the following link error:<br>
<br>
Linking CXX executable ..\..\..\..\bin\QVTKCxxTests.exe<br>
vtksqlite.lib(vtk_sqlite3.c.obj) : error LNK2005: _winCurrentTime already<br>
define<br>
d in QtSql.lib(sqlite3.obj)<br>
..\..\..\..\bin\QVTKCxxTests.exe : fatal error LNK1169: one or more multiply<br>
def<br>
ined symbols found<br>
LINK failed. with 2<br>
<br>
Here are the two locations where this method is defined:<br>
<br>
VTK\Utilities\vtksqlite\vtk_sqlite3.c(28935):int<br>
winCurrentTime(vtk_sqlite3_vfs *pVfs, double *prNow){<br>
<br>
qt-4.7.1\src\3rdparty\sqlite\sqlite3.c(28987):int winCurrentTime(sqlite3_vfs<br>
*pVfs, double *prNow){<br>
<br>
there is an option for configuring the build of Qt to use sqlite from the<br>
operating system. Is this what I should do?<br>
<br>
<br>
<br>
The VTK version of sqlite is supposed to have mangled symbols with the prefix "vtk_" so that this doesn't happen. Could you try replacing all occurances of winCurrentTime with vtk_winCurrentTime in the VTK version and see if it compiles correctly?<br>
<br>
<br>
Jeff <br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Jeff Baumes, Ph.D.<br>Technical Lead, Kitware Inc.<br>(518) 881-4932<br>
</div>