On Sunday 18 March 2012, Dr.Leo wrote: > Hi, > > Date: Sun, 18 Mar 2012 00:27:38 -0500 (CDT) > From: "R.L. Horn" > <li...@eastcheap.org> > > ... > It sounds like the real problem is that you have something called > pkg-config.pc that should be called sndfile.pc. Or is there something > about the mingw development environment that I'm missing? > > Sorry, my fault. I do have a libsndfile.pc which is in the pkg-config > dir. What confuses me that there is the folloing line: > > prefix=c:/devel/target/libsndfile > > Do I have to adjust the path to my environment? Which one would this be?
No. This prefix is not relevant. It will be replaced with the prefix from where the pkg-config spec file was found. See: http://linux.die.net/man/1/pkg-config Quotation: "Windows Specialities If a .pc file is found in a directory that matches the usual conventions (i.e., ends with \lib\pkgconfig), the prefix for that package is assumed to be the grandparent of the directory where the file was found, and the prefix variable is overridden for that file accordingly." > block quote > It doesn't appear that libsndfile is being linked against at all. Is > there anything like "-lsndfile" or "-llibsndfile" in the link.txt files? > > No, there isn't, I checked both link.txt files, although I suspect only > the one for libfluidsynth rather than fluidsynth is relevant. The libsndfile Windows distribution contains a "libsndfile-1.dll" along with a "sndfile.pc" file that does not match that DLL name. That is why I've modified and sent you my own modified copy, that only works if you put all files from libsndfile in a very specific directory structure. Please, check if this is your problem. > Admittedly I have a steep learning curve. But I feel compiling programs > with various libraries is one of the more common tasks for someone with > somewhat special needs. Any suggestions for reading on how packages are > organised etc.? Is it about mingw's linker or cmake or gcc's linker on > Linux or something completely different? I don't know a detailed documentation for mingw/windows. The link process in Linux and Windows is similar. The naming conventions are not, though. In Linux the dynamic libraries have the prefix "lib" and the suffix ".so", while in windows the prefix is usually omitted and the suffix is ".dll". In Windows is usual to link an import library (with suffix ".dll.a" for MinGW and ".lib" for MSVC) but it is not mandatory, because both linkers can work directly with the DLL files (and libsndfile does not provide the import library for MinGW). In Linux, the ".so" files are placed in the PREFIX/lib" directory, while in Windows the DLL should be placed at "PREFIX/bin". In Windows, only the import libraries are placed at PREFIX/lib, when there is one. Regards, Pedro _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev