[f130fc]: build-faq.html  Maximize  Restore  History

Download this file

76 lines (62 with data), 3.7 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>VXL build - Frequently Asked Questions</title>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<style type="text/css">
body { color: black ; background-color: white }
p.question { font-style: oblique ; font-weight: bold }
p.answer { color: green }
</style>
</head>
<body>
<h1><a href="http://vxl.sourceforge.net/"><img alt="VXL" src="logo1-quant.gif" border="0" width="128" height="48"/></a>
Build - Frequently Asked Questions</h1>
<hr/>
<ol>
<li>
<p class="question">I have successfully built VXL under MS Visual Studio, and am now trying to build a simple
program that uses the libraries. The Linker complains that there are multiple definitions (error <code>LNK2005</code>)
of several things from the C++ Standard Library. What is going wrong?</p>
<p class="answer">These kinds of errors often indicate that you are linking against different C++ run-time libraries that you
compiled VXL with (release vs debug, static vs DLL stdlib, etc). The flags like
<code>/MP</code> and <code>/MD</code> much match exactly,
in VXL's build and your program's build. These flags are set in Visual Studio under
Settings-&gt;C/C++-&gt;Code Generation-&gt;Use run-time library.
<br/>
The easiest way to link against these projects, we've found, is to use CMake for your project too.
CMake will then make sure the flags match, or else will give you an error or warning.</p>
<hr/>
</li>
<li>
<p class="question">I followed the VXL installation documentation, but found that some of the entries in the
<code>CMakeCache.txt</code> file say that CMake could not find programs, paths, etc. Is this a problem?</p>
<p class="answer">No. VXL needs very little to build correctly (only a C/C++ compiler at worst), however it can make use of
various system provided libraries, rather than build its own versions. CMake also looks for lots of system tools
so that it can understand the environment it is in. So having lots of <code>NOTFOUND</code> entries is quite normal. There is
no need to worry unless CMake displays a warning or error message while it runs.</p>
<hr/>
</li>
<li>
<p class="question">I used CMake to create a MSVC project with <code>BUILD_SHARED_LIBRARY=ON</code>. But when I try to build, it gives message
&quot;<code>cannot open
vcl.lib</code>&quot;. What's wrong?</p>
<p class="answer">The CMake "Shared Library" feature doesn't work with MSVC. You have to use static libraries. This is mostly
due to MSVC's requirements to have either a complete list of every exportable identifier or a decoration of every
identifier in the code. We are too lazy (or appalled at this "feature") to try to fix this. If you absolutely need
DLLs you can build your code using
Cygwin, which can produce shared libraries in a "normal" manner. Alternatively, if you only want to export a small
number of classes or functions, then you can manually list them. See the MSVC tool documentation for further
details.</p>
<hr/>
</li>
</ol>
<hr/>
<address>
<a href="http://validator.w3.org/check?uri=referer"><img src="valid-html401.png" height="31" width="88" align="right" border="0" alt="Valid HTML 4.01 Transitional"/></a>
<font color="blue">vxl-maintainers&nbsp;at&nbsp;lists&nbsp;dot&nbsp;sourceforge&nbsp;dot&nbsp;net</font>
<br/>
Hosted by <a href="http://sourceforge.net/"><img src="sflogo.png" alt="SourceForge Logo" align="middle" border="0"/></a>
</address>
</body>
</html>

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks