help-gsl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-gsl] GSL Link error on VC9


From: Chee, Clinton
Subject: Re: [Help-gsl] GSL Link error on VC9
Date: Wed, 20 Feb 2013 09:22:12 +1100

Hi Jerome,

There  are some notes in 
http://xtechnotes.blogspot.com.au/2011/11/notes-gsl.html
Which may or may not be helpful to you.
The notes above are for building GSL with VS C/C++. It did build and was able 
to used by another project.

However, the process above may be a bit messy and it is the first attempt. 
Another attempt with GSL and Intel C/C++ has a neater approach and is described 
in http://xtechnotes.blogspot.com.au/2012/07/gslwintel.html

The "error LNK2019:" is a VS error message and is usually because the project 
cannot see the variables (which could be from another project / library).  For 
an example see: 
http://xtechnotes.blogspot.com.au/2010/01/1001-most-idiotic-errors.html
And search (Ctrl-F) for LNK2019 on that webpage.

You can use a tool call Dependency Walker (get the right 32 or 64 bit version) 
and check if your compiled GSL dll exposes the variable it complains about. If 
check if the variable is exposed, just look at the middle panel in dependency 
walker where it lists all the (exposed) variables of the dll.

In the GSL / Intel C/C++, to avoid the LNK:2019, the variables were explicitly 
exposed via a definition file.
The following is taken from 
http://xtechnotes.blogspot.com.au/2012/07/gslwintel.html
Also more importantly, see "11. Interoperability - Using DEF file method for 
exporting variables and functions." In the link above.
--------------------------------------------------
14. This section describes how to build the GSL-provided tests using VS2010 and 
the Intel C compiler.
The source file test.c is physically located at, eg:
      GSL_staging/gslIntelSoln/<proj>/sys/test.c
Creating Test projects for each package specifically:
- In the solution gslIntelSoln,  Add New Project - Visual C++ - Win32 - Win32 
Console Application - "test_<gsl package>" -
  choose Console Application and Empty Project.
- Transform this to Intel C/C++ project by: right-click project - Intel C++ 
Composer XE 2011 - Use Intel C++
- In the test project, eg gslIntelSoln/test_block in Solution Explorer, right 
click on Source Files - Add Existing File.
- Choose the files to be tested by navigating to the gslIntelSoln/<proj>/block/ 
directory and select the test files such as test.c or others if applicable.
- Fill in for ALL CONFIGURATION, ALL PLATFORMS the following properties for the 
test project:
  C/C++ - General - Additional Include Directories - $(SolutionDir)gslIntel
  C/C++ - Preprocessor - WIN32, ...., GSL_DLL
  Linker - General - Additional Library Directories - $(OutputPath)
  Linker - Input - Additional Dependencies  - gslIntel.lib
- Compile and note the "error LNK2019" messages. If some variables or functons 
are not exposed, then edit the file
      gslIntel/gslIntel.def
  to add the functions and variables and recompile gslIntel and test projects.
- For the following test projects: test_eigen, test_linalg, test_wavelet, 
test_multifit, test_multimin,
  they use MKL and this can be configured by:
     - Project Propertie - Configuration Properties - Intel Performance 
Libraries - Intel Math Kernel Libraries - Use MKL - Parallel.
- For specfun test project, there is no test.c. Instead there are numerous 
test_sf* which must be included in test_specfun project.
--------------------------------------------------

C. Chee




************** IMPORTANT MESSAGE *****************************       
This e-mail message is intended only for the addressee(s) and contains 
information which may be
confidential. 
If you are not the intended recipient please advise the sender by return email, 
do not use or
disclose the contents, and delete the message and any attachments from your 
system. Unless
specifically indicated, this email does not constitute formal advice or 
commitment by the sender
or the Commonwealth Bank of Australia (ABN 48 123 123 124) or its subsidiaries. 
We can be contacted through our web site: commbank.com.au. 
If you no longer wish to receive commercial electronic messages from us, please 
reply to this
e-mail by typing Unsubscribe in the subject line. 
**************************************************************




reply via email to

[Prev in Thread] Current Thread [Next in Thread]