delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2014/12/04/22:20:16

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:references:in-reply-to:content-type:content-transfer-encoding;
q=dns; s=default; b=mSmKLN2mR+yE83jYxdh27nhB9MgNM2MDbZip292sZbu
rwhqnU58lhITujlK6aoFNHvz4W6T2W/DyMpqTNbknFTjxX1PIgeGWBNJTQ4hue0v
LJNltr7oiU3Y9oH7Fcnmx8/9BgCU75xsaCfwMySNxoH98au7ahJ/UULiLbWHsmtU
=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:references:in-reply-to:content-type:content-transfer-encoding;
s=default; bh=fSaPEIA5TWeHjA3/4YHijc21CaU=; b=agFzuUuCVHQBSx2C2
el5C7qkw6drxdeGpqoIYjiNKUKg3hazzy8p4AYW7Y6/3zUJrW/cfBJV0itLc2yrR
R28/t+ZDEmNHIhWfKRU0u2fGr72G3WaeVFe1Y7VAS/eq7UeJd89CDOYLylg/U9/U
fOg23lSIomdCwL+SlWRnpGJ9SY=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2
X-HELO: smtp103.biz.mail.gq1.yahoo.com
X-Yahoo-SMTP: ycweUreswBCK.d0cygTP5tXwHncbOU7YVeVfIxOQoyRMI2IuIKLmUqE-
Message-ID: <5481245A.1030606@molconn.com>
Date: Thu, 04 Dec 2014 22:19:54 -0500
From: LMH <lmh_users-groups AT molconn DOT com>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:33.0) Gecko/20100101 Firefox/33.0 SeaMonkey/2.30
MIME-Version: 1.0
To: moss AT cs DOT umass DOT edu, cygwin AT cygwin DOT com
Subject: Re: advice about setting up the eigen library for use with cygwin g++
References: <5480D570 DOT 2010608 AT molconn DOT com> <54810D8F DOT 6060001 AT cs DOT umass DOT edu>
In-Reply-To: <54810D8F.6060001@cs.umass.edu>
X-IsSubscribed: yes

Eliot Moss wrote:
> On 12/4/2014 4:43 PM, LMH wrote:
>> Hello,
>>
>> As stated, I am writing a few tools with cygwin g++. These tools will
>> make use of the eigen library for some linear algebra (PCA and matrix
>> manipulations). I have never built with a library that was not installed
>> through the cygwin package manager, so I thought I would ask if there
>> was anything I needed to be aware of.
>>
>> Eigen is a header only kind  of thing, so my understanding is that all I
>> need to do is to unpack the src somewhere add the location to the
>> include path.
>>
>> I was thinking of putting Eigen in,
>>
>> /cygdrive/c/cygwin/lib/eigen/
>>
>> and using,
>>
>> g++ -I /cygdrive/c/cygwin/lib/eigen/
>>
>> Does anyone see any issue with this approach? Will there be a problem
>> having a non-cygwin directory in cygwin/lib, meaning something the
>> cygwin install isn't formally aware of? Is there a preferred method for
>> setting up something like this?
> 
> I'm not sure what you mean about a "header only kind of thing".
> Unless already provided in a format built for cygwin, libraries
> have to be recompiled and relinked for use on cygwin, even if
> all your app does is include a header file and then link with
> the library.  Put another way, cygwin is not a Unix virtual
> machine like say, Virtual Box or VMWare.  It is a library that
> translates Unix-like calls into Windows calls, and things have
> to be built specifically to work with it.
> 
> SO I think you need to build and install the library, and then
> build your application using the header files.
> 
> Regards -- Eliot Moss
> 

Thanks for the reply.

> I'm not sure what you mean about a "header only kind of thing".

I guess my understanding of eigen is that it not a library that is
linked to and then accessed dynamically at runtime but rather is an
archive of cpp src code and header files. You use it by including the
header files for the functions you need and the linker bundles the code
specified in the header files into your application. This works no
differently than the other src and header files for your program. There
is no config or make files included with eigen with which to configure,
build, or compile anything.

From the Eigen site,

"How to "install" Eigen?
In order to use Eigen, you just need to download and extract Eigen's
source code (see the wiki for download instructions). In fact, the
header files in the Eigen sub directory are the only files required to
compile programs using Eigen. The header files are the same for all
platforms. It is not necessary to use CMake or install anything."

"There is no library to link to. The only thing that you need to keep in
mind when compiling is that the compiler must be able to find the Eigen
header files. The directory in which you placed Eigen's source code must
be in the include path. With GCC you use the -I option to achieve this."

I wouldn't have posted this question if I was at all clear on how this
is supposed to work, so the above is just my current understanding. It
may be entirely incorrect. Do you think I am misunderstanding how this
is supposed to work?

LMH




--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019