libcdio-help
[Top][All Lists]
Advanced

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

[Libcdio-help] Help with windows port


From: yary
Subject: [Libcdio-help] Help with windows port
Date: Tue, 1 Nov 2005 14:29:20 -0800

Hello all, and apologies for asking about what should "just work..."

I'd like to use libcdio for a personal project which may turn into
some generally useful open-source shareware or freeware- I'm working
in Windows now using cross platform libraries, with the goal of
eventually porting to MacOS & Linux & BSDs. All I need at the moment
is a listing of installed CD drives, though I'll probably include some
cdparanoia in the longer term.

Well I try to build under cygwin and mingw, and the usual ./configure;
make doesn't work in either environement. I also have Visual c++ left
over from an old job, and will be doing the bulk of my work in that
IDE, but I'm not looking to build the library in there yet- just want
to see it build on Windows first in any environment as a test.

I should also say, if anyone cares to send me a windows libcdio.dll
then I'll code against that and worry about building for the other
releases when the time comes...or I'll use the compiled binaries from
http://www.gnu.org/software/libcdio/download.html and never worry
about building it from scratch!

here's the output & error I see in cygwin:
...
echo 'CDIO_CDDA_0 { ' > libcdio_cdda.la.ver
objs=`for obj in common_interface.lo cddap_interface.lo interface.lo scan_device
s.lo smallft.lo toc.lo utils.lo; do sed -ne "s/^pic_object='\(.*\)'$/\1/p" $obj;
 done`; \
nm ${objs} | sed -n -e 's/^.*[  ][ABCDGIRSTW][ABCDGIRSTW]*[     ][      ]*\([_A-
Za-z][_A-Za-z0-9]*\)$/\1/p' | sort -u | { first=true; while read symbol; do if g
rep -q "^${symbol}\$" ./libcdio_cdda.sym; then if test $first = true; then echo
"  global:"; first=false; fi; echo "    ${symbol};"; fi; done; } >> libcdio_cdda
.la.ver; \
nm ${objs} | sed -n -e 's/^.*[  ][ABCDGIRSTW][ABCDGIRSTW]*[     ][      ]*\([_A-
Za-z][_A-Za-z0-9]*\)$/\1/p' | sort -u | { first=true; while read symbol; do if g
rep -q "^${symbol}\$" ./libcdio_cdda.sym; then :; else if test $first = true; th
en echo "  local:"; first=false; fi; echo "    ${symbol};"; fi; done; } >> libcd
io_cdda.la.ver
echo '};' >> libcdio_cdda.la.ver
/bin/bash ../../libtool --tag=CC --mode=link gcc  -g -O2 -Wall -Wchar-subscripts
 -Wmissing-prototypes -Wmissing-declarations -Wunused -Wpointer-arith -Wwrite-st
rings -Wnested-externs -Wno-sign-compare   -o libcdio_cdda.la -rpath /usr/local/
lib -version-info 0:1:0 -Wl,--version-script=libcdio_cdda.la.ver common_interfac
e.lo cddap_interface.lo interface.lo scan_devices.lo smallft.lo toc.lo utils.lo
 ../../lib/driver/libcdio.la

*** Warning: This system can not link to static lib archive ../../lib/driver/lib
cdio.la.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
libtool: link: warning: undefined symbols not allowed in i686-pc-cygwin shared l
ibraries
ar cru .libs/libcdio_cdda.a  common_interface.o cddap_interface.o interface.o sc
an_devices.o smallft.o toc.o utils.o
ranlib .libs/libcdio_cdda.a
creating libcdio_cdda.la
/usr/bin/sed: can't read proj/libcdio-0.76/lib/driver/libcdio.la: No such file o
r directory
libtool: link: `proj/libcdio-0.76/lib/driver/libcdio.la' is not a valid libtool
archive
make[3]: *** [libcdio_cdda.la] Error 1
make[3]: Leaving directory `/cygdrive/c/Documents and Settings/Administrator/My
Documents/cpp proj/libcdio-0.76/lib/cdda_interface'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/cygdrive/c/Documents and Settings/Administrator/My
Documents/cpp proj/libcdio-0.76/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/cygdrive/c/Documents and Settings/Administrator/My
Documents/cpp proj/libcdio-0.76'
make: *** [all] Error 2


I'm not so familiar with the MinGW environment, I only installed it
yesterday to help me with this in the hope that it'd be a magic
bullet. It fails pretty quickly, here's what it tells me:
...
Making all in driver
c:\devel\MinGW\bin\mingw32-make.exe[3]: Entering directory
`c:/Documents and Settings/Administrator/My Documents/cpp
proj/libcdio-0.76/lib/driver'
if C:/devel/msys/1.0/bin/sh.exe ../../libtool --tag=CC --mode=compile
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../lib/driver
-I../../include/    -g -O2 -Wall -Wchar-subscripts
-Wmissing-prototypes -Wmissing-declarations -Wunused -Wpointer-arith
-Wwrite-strings -Wnested-externs -Wno-sign-compare -MT
_cdio_generic.lo -MD -MP -MF ".deps/_cdio_generic.Tpo" -c -o
_cdio_generic.lo _cdio_generic.c; \
then mv -f ".deps/_cdio_generic.Tpo" ".deps/_cdio_generic.Plo"; else
rm -f ".deps/_cdio_generic.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../lib/driver
-I../../include/ -g -O2 -Wall -Wchar-subscripts -Wmissing-prototypes
-Wmissing-declarations -Wunused -Wpointer-arith -Wwrite-strings
-Wnested-externs -Wno-sign-compare -MT _cdio_generic.lo -MD -MP -MF
.deps/_cdio_generic.Tpo -c _cdio_generic.c  -DPIC -o
.libs/_cdio_generic.o
_cdio_generic.c:44:25: cdio/sector.h: No such file or directory
_cdio_generic.c:45:23: cdio/util.h: No such file or directory
_cdio_generic.c:46:26: cdio/logging.h: No such file or directory
In file included from _cdio_generic.c:47:
cdio_assert.h:30:24: cdio/types.h: No such file or directory
....

and on and on- looks like a problem with the include directories.
MinGW comes with its own make, "mingw32-make.exe", could be some
indiosyncracy there, though I typed "export MAKE=mingw32-make.exe;
./configure MAKE=mingw32-make.exe" and that ran without halting.

I'm a fairly experienced programmer, but haven't dug around the
libcdio code, headers, makefiles at all yet. I'd rather be working on
my project, don't need the libcdio code quite yet, and am hoping one
of you has an easy answer before I get to that point...

thanks for your consideration

-y




reply via email to

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