It uses c++ as linker? No matter 1.1.6, 1.1.7 or master? Shouldnt happen. I think it's time for a full build log:
cmake -DCMAKE_VERBOSE_MAKEFILE=1 ..
> Cmake is trying to make a working program ONLY for the system it is running on which is NOT what I want to do.
But this is exactly how cross platform deployment works. I dont understand why you want to bundle all audio drivers (even foreign ones) in a single dll. Think about it: How would you compile fluidsynth with ALSA or OSS support on windows? The ABI and calling conventions between different OSs vary. I dont see how this could work.
And unless you want to privately fork fluidsynth, writing a custom makefile is IMO the worst choice you could make. If upstream changes anything related to the buildsystem your build will break.
Am Sonntag, 19. November 2017, 15:40:58 CET schrieben Sie:
> Hi Tom
> I am now working with version 1.1.8. which has the same linker problem as all the others.
> Thanks for your reply and am interested and surprised to hear that you do not have any solution to thelinker errors.
> Having done a bit of research it appears to me (and I could easily be wrong) that the problem liesin compiling fluidsynth with a c++ compiler when the header files indicate to me that the program is writtenin plain old C. (Please tell me if I am wrong.)
> The linker is looking to generate extra code which initialises all the c++ constructors it finds. (Presumably thisis the only way to initialise a .dll ). The fact that it does not find ANY constructors is probably causing the error.(Inserting a dummy constructor may cure the problem).
> I think the solution may be to compile fluidsynth with a C compiler. Does cmake have any option to force usingC rather than c++. I tell it -G "MinGW Makefiles" (there is no other useful option) so it does not know whetherit is working with C or c++ so it goes for c++ which can (in theory) do both.
> I will have to investigate portaudio. I am currently in learning mode regarding audio interfaces but it would seemto me that fluidsynth DOES have the capability to contain ALL of the common audio interfaces (for Mac, Linux,and Windows) and the interface it uses depends upon which one it finds first when it is run. This is documentedin fluidsynth's user documentation.
> Cmake is trying to make a working program ONLY for the system it is running on which is NOT what I want todo. I suspect it would be best for me to write my own makefile and I can then put what I want into it. This willavoid me trying to understand the mess (which usually does work) that cmake creates.
> Best WishesDavid.
>
> From: Tom M. <
address@hidden>
> To: David Back <
address@hidden>
> Cc: FluidSynth Mailing List <
address@hidden>
> Sent: Saturday, 18 November 2017, 12:35
> Subject: Re: [fluid-dev] pkgconfig not found
>
> Ok, good to hear. You should however use 1.1.8 for your testings, as the older versions are unsupported. For those linker errors I currently cant provide a solution.
>
> > I will need some extra packages to get Pulseaudio and otherLinux and mac sound drivers incorporated.
>
> Sry, never attempted to make pulseaudio run on windows myself.
>
> > The whole purpose of thisexercise is to get a fluidsynth.dll which has ALL the sound drivers available so it SHOULD work on allsystems (under Wine) with minimum latency.
>
> That would be awful job I guess, you should consider simply using portaudio, as it provides exactly that kind of abstraction.
>
> Tom