Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on Windows

Date2008-04-16 02:05
From"Michael Gogins"
SubjectRe: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on Windows
There is still a problem with multiple definitions. Perhaps you are not 
building all the parts that go into the installer. This is my build script 
with all the options required to build all the parts for the installer:

#!/bin/sh

scons custom=custom-mingw.py usePortMIDI=1 useBufferOverflowLibrary=1 
useJack=0 buildCsoundVST=1 buildvst4cs=1 buildInterfaces=1 buildCsoundAC=1 
buildJavaWrapper=1 useOSC=1 buildPythonOpcodes=1 buildLoris=0 
buildStkOpcodes=1 buildWinsound=1 noFLTKThreads=0 buildPDClass=1 
buildVirtual=1 buildCsound5GUI=1 buildTclcsound=1 buildLua=1 useDouble=1 
dynamicCsoundLibrary=1 buildCSEditor=1 gcc4opt=nocona buildRelease=0 
bufferoverflowu=1 noDebug=0 $1 $2 $3 $4

The problems with link line start as shown below.

Regards,
Mike

g++ --subsystem:windows -shared -mwindows -mno-cygwin -Wl,--enable-auto-import 
 -Wl,--enable-runtime-pseudo-reloc -o _CsoundAC.pyd fr
ontends\CsoundAC\CsoundAC_wrap.o -L. -L. -LD:\usr\local\lib -L. -L. -LU:\libsndfile-1_0_17 
 -LU:\portaudio\build\msvc\Win32\Release -
LU:\portmidi\pm_win -LU:\portmidi\porttime\Release -LU:\portmidi\pm_win\Release 
 -LU:\fltk-mingw\lib -LU:\zlib -LU:\libpng-1.2.24\.li
bs -LU:\Python25\libs -LU:\LuaJIT-1.1.4 -LU:\Tcl\lib -LU:\fluidsynth\winbuild 
 -LU:\dxsdk\Lib\x86 -LU:\liblo -LU:\pthreads\Pre-built.
2\lib -LU:\pd\bin -lCsoundAC -lpython25 -lfltk -lfltk_images -lfltk_png -lfltk_jpeg 
 -lfltk_z -lsndfile -lcsound64 _csnd.pyd lib_csnd
.a 
_csnd.def -lpython25 -lsndfile -lportaudio -lportmidi -lfltk -llo -lpng -lstdc++ 
 -lsupc++ -ladvapi32 -lcomctl32 -lcomdlg32 -lglu3
2 -lkernel32 -lmsvcrt -lodbc32 -lodbccp32 -lole32 -loleaut32 -lshell32 -luser32 
 -luuid -lwinmm -lwinspool -lws2_32 -lwsock32 -ladvap
i32 -lcomctl32 -lcomdlg32 -lglu32 -lkernel32 -lodbc32 -lodbccp32 -lole32 -loleaut32 
 -lshell32 -luser32 -luuid -lwinmm -lwinspool -lw
s2_32 -lwsock32 -lbufferoverflowu -Wl,--out-implib,lib_CsoundAC.a -Wl,--output-def,_CsoundAC.def
Creating library file: lib_CsoundAC.a
_csnd.pyd:iostream-inst.cc:(.text+0x60): multiple definition of 
`DllMainCRTStartup@12'
d:/utah/mingw/bin/../lib/gcc/mingw32/4.2.1-dw2/../../../dllcrt2.o:dllcrt1.c:(.text+0x60): 
first defined here
_csnd.pyd:iostream-inst.cc:(.text+0x110): multiple definition of `atexit'
d:/utah/mingw/bin/../lib/gcc/mingw32/4.2.1-dw2/../../../dllcrt2.o:dllcrt1.c:(.text+0x110): 
first defined here
_csnd.pyd:iostream-inst.cc:(.text+0x140): multiple definition of `_onexit'
d:/utah/mingw/bin/../lib/gcc/mingw32/4.2.1-dw2/../../../dllcrt2.o:dllcrt1.c:(.text+0x140): 
first defined here
_csnd.pyd:iostream-inst.cc:(.text+0x170): multiple definition of 
`__gcc_register_frame'
d:/utah/mingw/bin/../lib/gcc/mingw32/4.2.1-dw2/crtbegin.o:cygming-crtbegin.c:(.text+0x0): 
first defined here
_csnd.pyd:iostream-inst.cc:(.text+0x1e0): multiple definition of 
`__gcc_deregister_frame'
d:/utah/mingw/bin/../lib/gcc/mingw32/4.2.1-dw2/crtbegin.o:cygming-crtbegin.c:(.text+0x70): 
first defined here
_csnd.pyd:iostream-inst.cc:(.text+0x230): multiple definition of `__main'
d:/utah/mingw/bin/../lib/gcc/mingw32/4.2.1-dw2/crtbegin.o:cygming-crtbegin.c:(.text+0xc0): 
first defined here
_csnd.pyd:interfaces/python_interface_wrap.cc:2613: multiple definition of 
`Swig::GCItem::get_own() const'
frontends\CsoundAC\CsoundAC_wrap.o:frontends/CsoundAC/CsoundAC_wrap.cc:2613: 
first defined here
_csnd.pyd:interfaces/python_interface_wrap.cc:2917: multiple definition of 
`Swig::Director::swig_get_inner(char const*) const'
frontends\CsoundAC\CsoundAC_wrap.o:frontends/CsoundAC/CsoundAC_wrap.cc:2917: 
first defined here
_csnd.pyd:interfaces/python_interface_wrap.cc:2920: multiple definition of 
`Swig::Director::swig_set_inner(char const*, bool) const'

frontends\CsoundAC\CsoundAC_wrap.o:frontends/CsoundAC/CsoundAC_wrap.cc:2920: 
first defined here
_csnd.pyd:d:\utah\home\mkg\projects\csound-mingw-release/H/csound.hpp:72: 
multiple definition of `Csound::GetCsound()'
frontends\CsoundAC\CsoundAC_wrap.o:d:\utah\home\mkg\projects\csound-mingw-release/H/csound.hpp:72: 
first defined here
_csnd.pyd:interfaces/python_interface_wrap.cc:4699: multiple definition of 
`swig::PySwigIteratorOpen_T<__gnu_cxx::__normal_iterator<
double*, std::vector > >, double, 
swig::from_oper >::incr(unsigned int)'
frontends\CsoundAC\CsoundAC_wrap.o:frontends/CsoundAC/CsoundAC_wrap.cc:4057: 
first defined here
_csnd.pyd:interfaces/python_interface_wrap.cc:4707: multiple definition of 
`swig::PySwigIteratorOpen_T<__gnu_cxx::__normal_iterator<
double*, std::vector > >, double, 
swig::from_oper >::decr(unsigned int)'
frontends\CsoundAC\CsoundAC_wrap.o:frontends/CsoundAC/CsoundAC_wrap.cc:4065: 
first defined here
_csnd.pyd:interfaces/python_interface_wrap.cc:4699: multiple definition of 
`swig::PySwigIteratorOpen_T > > >, double, swig::from_oper >::incr(unsig
ned int)'




----- Original Message ----- 
From: "victor" 
To: "Developer discussions" 
Sent: Tuesday, April 15, 2008 7:19 PM
Subject: Re: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on Windows


> Well, to be fair, I did make one change in SConstruct (line 2107):
>
>        if getPlatform() != 'win32':
>         acEnvironment.Prepend(LIBS = csndModule)
>        else:  acEnvironment.Prepend(LIBS = 'csnd')
>
> I did not think it made any difference, but on reverting, I got the
> same errors as you. The linker was trying to link to _csnd.pyd
> and failing miserably. Now it seems to be correct (linking to csnd.dll).
>
> I am committing the changes as we speak
>
> Victor
>
> ----- Original Message ----- 
> From: "Michael Gogins" 
> To: "Developer discussions" 
> Sent: Tuesday, April 15, 2008 11:35 PM
> Subject: Re: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on 
> Windows
>
>
>> Yes, as I said before, I tried building with SConstruct and it failed in
>> the
>> same way. I am going to try it again right now, as thoroughly as I can. 
>> It
>> doesn't make sense.
>>
>> Regards,
>> Mike
>> ----- Original Message ----- 
>> From: "victor" 
>> To: "Developer discussions" 
>> Sent: Tuesday, April 15, 2008 6:01 PM
>> Subject: Re: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on
>> Windows
>>
>>
>>> Did you try building with SConstruct? I can build CsoundAC here without
>>> any
>>> problems
>>> (on Windows).
>>>
>>> Victor
>>>
>>> ----- Original Message ----- 
>>> From: "Michael Gogins" 
>>> To: "Developer discussions" 
>>> Sent: Tuesday, April 15, 2008 3:26 AM
>>> Subject: [Cs-dev] Sconstruct2 does not build csnd or CsoundAC on Windows
>>>
>>>
>>>> _csnd.pyd fails to link:
>>>>
>>>> g++ -shared -mwindows -mno-cygwin -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc
>>>> -module -Wl,--add-stdcall-alias -o _csn
>>>> d.pyd
>>>> interfaces\python_interface_wrap.o -L. -L. -LD:\usr\local\lib -L. -L. -LU:\libsndfile-1_0_17
>>>> -LU:\portaudio\build\msvc\Win32\R
>>>> elease -LU:\portmidi\pm_win -LU:\portmidi\porttime\Release -LU:\portmidi\pm_win\Release
>>>> -LU:\fltk-mingw\lib -LU:\zlib -LU:\libpng-1.
>>>> 2.24\.libs -LU:\Python25\libs -LU:\LuaJIT-1.1.4 -LU:\Tcl\lib -LU:\fluidsynth\winbuild
>>>> -LU:\dxsdk\Lib\x86 -LU:\liblo -LU:\pthreads\Pr
>>>> e-built.2\lib -LU:\pd\bin -lpython25 -lstdc++ -lcsound64 -lsndfile -lportaudio
>>>> -lportmidi -lfltk -llo -lsndfile -ladvapi32 -lcomctl3
>>>> 2 -lcomdlg32 -lglu32 -lkernel32 -lmsvcrt -lodbc32 -lodbccp32 -lole32 -loleaut32
>>>> -lshell32 -luser32 -luuid -lwinmm -lwinspool -lws2_3
>>>> 2 -lwsock32 -ladvapi32 -lcomctl32 -lcomdlg32 -lglu32 -lkernel32 -lodbc32
>>>> -lodbccp32
>>>> -lole32 -loleaut32 -lshell32 -luser32 -luuid -lw
>>>> inmm -lwinspool -lws2_32 -lwsock32 -lbufferoverflowu -lwinmm csnd.dll
>>>> libcsnd.a csnd.def -Wl,--out-implib,lib_csnd.a -Wl,--output-de
>>>> f,_csnd.def
>>>> Creating library file: lib_csnd.a
>>>> d000000.o:(.idata$2+0x0): multiple definition of `_head_csnd_dll'
>>>> libcsnd.a(d000000.o):(.idata$2+0x0): first defined here
>>>> d000160.o:(.idata$7+0x0): multiple definition of `csnd_dll_iname'
>>>> libcsnd.a(d000406.o):(.idata$7+0x0): first defined here
>>>> Cannot export _ZTV10CsoundFile: symbol not found
>>>> Cannot export _ZTV8CppSound: symbol not found
>>>> collect2: ld returned 1 exit status
>>>> scons: *** [_csnd.pyd] Error 1
>>>> scons: building terminated because of errors.
>>>>
>>>> If I try to fix that by making csnd a static library, then the Python
>>>> message callback in csnd, which brings in Python, is linked with
>>>> CsoundVST.
>>>> However, CsoundVST must never link with Python.
>>>>
>>>> If I try to fix that, then there are multiple Python import symbols in
>>>> the
>>>> CsoundAC link.
>>>>
>>>> There may be more problems, but that is where I quit.
>>>>
>>>> Regards,
>>>> Mike
>>>>
>>>>
>>>> -------------------------------------------------------------------------
>>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>>> Don't miss this year's exciting event. There's still time to save $100.
>>>> Use priority code J8TL2D2.
>>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>>> _______________________________________________
>>>> Csound-devel mailing list
>>>> Csound-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>
>>>
>>> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>>> Don't miss this year's exciting event. There's still time to save $100.
>>> Use priority code J8TL2D2.
>>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>>> _______________________________________________
>>> Csound-devel mailing list
>>> Csound-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
>> Don't miss this year's exciting event. There's still time to save $100.
>> Use priority code J8TL2D2.
>> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
> Don't miss this year's exciting event. There's still time to save $100.
> Use priority code J8TL2D2.
> http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel 


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net