[Coin-discuss] Problem with MinGW

Eduardo F. Silva efsilva at pobox.com
Tue May 9 12:13:23 EDT 2006


Thank you for the help Marco!
Eduardo.


>> Eduardo F. Silva wrote:
>>> Hi Marco,
>>>
>>> Thanks for the good news.  I am also trying to bring my COIN projects
>>> from
>>> MSVC++ to MingW.  Are you (or someone else) using Eclipse/CDT?
>>>
>>> May I ask you if you have any important remarks to help setting the
>>> environment?
>>> I mean, for example, compiler options, setting symbols for coin to
>> identify
>>> the OS/Compiler as in CoinSignal.hpp, or even if you recommend managed
>>> or
>>> standard(using COIN makefiles) c++ projects.
>>> I think that using managed projects (makefiles automatically generated)
>> may
>>> be better because would be easier to change compiler tools(for example,
>>> setting eclipse with Microsoft C++ toolkit (free)). However, setting
>>> the
>>> programming environment may be painful.
>>>
>>>
>>> Thanks,
>>> Eduardo.
>>>
>
> Hi Eduardo,
> I am not using eclipse/CDT but MinGW + UnxUtils + Dos command prompt :-)
> I describe the steps made for setting-up the environment here:
> http://list.coin-or.org/pipermail/coin-discuss/2006-March/001908.html
>
> Additionally I use a Makefile that is a modified version of the Makefile
> found in COIN/Clp/Samples/Makefile.anywhere
> This one:
>
> # Start of the Makefile
> EXENAME := setcoveringCG
>
> SOURCEFILES :=
> SOURCEFILES += main.cpp
> SOURCEFILES += SetCoveringCG.cpp
> SOURCEFILES += CbcCompareUser.cpp
> SOURCEFILES += CbcHeuristicUser.cpp
>
> SRCEXT := cpp
>
> #OptLevel := -g
> OptLevel := -O2
>
> # The location of COIN
> CoinDir := D:/COIN
> export MakefileDir := $(CoinDir)/Makefiles
> include ${MakefileDir}/Makefile.coin
> include ${MakefileDir}/Makefile.location
>
> IncDir := .
> IncDir += ${OsiCbcIncDir}
> IncDir += ${OsiClpIncDir}
> IncDir += ${CbcIncDir}
> IncDir += ${CglIncDir}
> IncDir += ${ClpIncDir}
> IncDir += ${OsiIncDir}
> IncDir += ${CoinIncDir}
> IncDir += ${zlibIncDir}
> IncDir += ${bzlibIncDir}
> IncDir += ${readlineIncDir}
> IncDir += ${lapackIncDir}
>
> LibDir := .
> LibDir += ${OsiCbcLibDir}
> LibDir += ${OsiClpLibDir}
> LibDir += ${CbcLibDir}
> LibDir += ${CglLibDir}
> LibDir += ${OsiLibDir}
> LibDir += ${ClpLibDir}
> LibDir += ${CoinLibDir}
> LibDir += ${zlibLibDir}
> LibDir += ${bzlibLibDir}
> LibDir += ${readlineLibDir}
> LibDir += ${lapackLibDir}
> LibDir += $(GlpkLibDir)
>
> LibName :=
> LibName += ${OsiCbcLibName}
> LibName += ${OsiClpLibName}
> LibName += ${CbcLibName}
> LibName += ${CglLibName}
> LibName += ${OsiLibName}
> LibName += ${ClpLibName}
> LibName += ${CoinLibName}
> LibName += ${zlibLibName}
> LibName += ${bzlibLibName}
> LibName += ${readlineLibName}
> LibName += ${lapackLibName}
> LibName += $(GlpkLibName)
>
> Define :=
> Define += ${OsiClpDefine}
> Define += ${OsiDefine}
> Define += ${OsiCbcDefine}
> Define += ${CbcDefine}
> Define += ${CglDefine}
> Define += ${ClpDefine}
> Define += ${CoinDefine}
> Define += ${zlibDefine}
> Define += ${bzlibDefine}
> Define += ${readlineDefine}
> Define += ${lapackDefine}
> Define += ${taucsDefine}
>
> CXXFLAGS += $(OPTFLAG)
> CXXFLAGS += -Wall
>
> ###############################################################################
>
> space:= $(empty) $(empty)
> OptVersion := $(subst $(space),_,$(OptLevel))
>
> TARGETDIR := $(UNAME)$(OptVersion)
> DEPDIR := dep
>
> VPATH := . : include : Junk : ${TARGETDIR} : ${DEPDIR}
> ###############################################################################
>
> CXXFLAGS += $(addprefix -I,${IncDir})
> CXXFLAGS += $(addprefix -D,${Define})
>
> LIBDIRS := ${LibDir}
> LIBS    := ${LibName}
>
> LDFLAGS := $(addprefix -L,$(LIBDIRS))
> LDFLAGS += $(call ifprefix,$(SHLINKPREFIX),$(LIBDIRS))
> LDFLAGS += $(patsubst lib%,-l%,$(basename $(LIBS)))
>
> #LDFLAGS += -lefence
> #LDFLAGS += -Wl,-static
> ###############################################################################
>
> TESTSRC := $(SOURCEFILES)#.$(SRCEXT)
> TESTOBJ := $(TESTSRC:.$(SRCEXT)=.o)
> TESTOBJ := $(addprefix $(TARGETDIR)/, $(TESTOBJ))
> TESTDEP := $(addprefix $(DEPDIR)/, $(TESTSRC:.$(SRCEXT)=.d))
>
> ###############################################################################
> # This one must be right before the rules
>
> include ${MakefileDir}/Makefile.rules
>
> ###############################################################################
>
> .DELETE_ON_ERROR:
>
> .PHONY: default clean libdepend
>
> default: $(EXENAME)
>
> ###############################################################################
>
>
> $(EXENAME) : libdepend $(TESTOBJ)
>          @rm -rf Junk
>          @echo ""
>          @echo Creating program $(EXENAME)
>          @rm -f $@
>          @$(CXX) $(CXXFLAGS) -o $@ $(TESTOBJ) $(LDFLAGS) $(SYSLD) -lm
>
> clean:
>          @rm -f $(TARGETDIR)/*.o
>          @rm -f $(EXENAME)
>          @rm -f $(DEPDIR)/*.d
>
> ###############################################################################
>
> -include $(TESTDEP)
>
> # End of the Makefile
>
> Obviously you should adapt it for your path and source files.
> And use at your own risk :-)
> I hope to be useful.
>
> Bye.
>
> Marco Tacconi
>
> _______________________________________________
> Coin-discuss mailing list
> Coin-discuss at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-discuss
>
>





More information about the Coin-discuss mailing list