Thanks for your reply. I wrote a small code by modifying the example get_started.cpp in cppad_ipopt folder. Now I want to compile it. The makefile in the folder seems pretty complicated and overkill. Could you please point me to a link to a place where I can find a the correct linkage and include flags for g++ to compile the example files? I'm sure this should be possible with one g++ call as long as I have the correct flags and links. Here is what I am getting right now:<div>
<br></div><div><br></div><div><br></div><div><div>rishi@gandalf:~$ g++ -I/opt/cppad/2012/cppad_ipopt/example -I/opt/cppad/2012 -I/opt/cppad/2012/cppad_ipopt/src -I/opt/ipopt/3102/install/include -L/opt/cppad/2012/cppad_ipopt/src -lcppad_ipopt -L/opt/ipopt/3102/install/lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lipopt -llapack -ldl -lcoinmumps -lpthread -lcoinhsl -lblas -lgfortran -lm -lgcc_s -lquadmath -lcoinmetis -L/usr/lib/gcc/x86_64-linux-gnu/4.6 -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.6/../../.. -lgfortran -lm -lquadmath -lpthread -ldl nlmpc.cpp </div>
<div><br></div><div>/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o: In function `_start':</div><div>(.text+0x20): undefined reference to `main'</div><div>/tmp/cconNijV.o: In function `ipopt_get_started()':</div>
<div>nlmpc.cpp:(.text+0x868): undefined reference to `cppad_ipopt::cppad_ipopt_nlp::cppad_ipopt_nlp(unsigned long, unsigned long, CppAD::vector<double> const&, CppAD::vector<double> const&, CppAD::vector<double> const&, CppAD::vector<double> const&, CppAD::vector<double> const&, cppad_ipopt::cppad_ipopt_fg_info*, cppad_ipopt::cppad_ipopt_solution*)'</div>
<div>nlmpc.cpp:(.text+0x899): undefined reference to `Ipopt::IpoptApplication::IpoptApplication(bool, bool)'</div><div>/tmp/cconNijV.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for Ipopt::Vector]+0xc8): undefined reference to `Ipopt::Vector::AddTwoVectorsImpl(double, Ipopt::Vector const&, double, Ipopt::Vector const&, double)'</div>
<div>/tmp/cconNijV.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for Ipopt::Vector]+0xd0): undefined reference to `Ipopt::Vector::FracToBoundImpl(Ipopt::Vector const&, double) const'</div><div>/tmp/cconNijV.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for Ipopt::Vector]+0xd8): undefined reference to `Ipopt::Vector::AddVectorQuotientImpl(double, Ipopt::Vector const&, Ipopt::Vector const&, double)'</div>
<div>/tmp/cconNijV.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for Ipopt::Vector]+0xe0): undefined reference to `Ipopt::Vector::HasValidNumbersImpl() const'</div><div>collect2: ld returned 1 exit status</div><div><br></div>
<div><br></div>
</div>