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&#39;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&#39;:</div><div>(.text+0x20): undefined reference to `main&#39;</div><div>/tmp/cconNijV.o: In function `ipopt_get_started()&#39;:</div>

<div>nlmpc.cpp:(.text+0x868): undefined reference to `cppad_ipopt::cppad_ipopt_nlp::cppad_ipopt_nlp(unsigned long, unsigned long, CppAD::vector&lt;double&gt; const&amp;, CppAD::vector&lt;double&gt; const&amp;, CppAD::vector&lt;double&gt; const&amp;, CppAD::vector&lt;double&gt; const&amp;, CppAD::vector&lt;double&gt; const&amp;, cppad_ipopt::cppad_ipopt_fg_info*, cppad_ipopt::cppad_ipopt_solution*)&#39;</div>

<div>nlmpc.cpp:(.text+0x899): undefined reference to `Ipopt::IpoptApplication::IpoptApplication(bool, bool)&#39;</div><div>/tmp/cconNijV.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for Ipopt::Vector]+0xc8): undefined reference to `Ipopt::Vector::AddTwoVectorsImpl(double, Ipopt::Vector const&amp;, double, Ipopt::Vector const&amp;, double)&#39;</div>

<div>/tmp/cconNijV.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for Ipopt::Vector]+0xd0): undefined reference to `Ipopt::Vector::FracToBoundImpl(Ipopt::Vector const&amp;, double) const&#39;</div><div>/tmp/cconNijV.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for Ipopt::Vector]+0xd8): undefined reference to `Ipopt::Vector::AddVectorQuotientImpl(double, Ipopt::Vector const&amp;, Ipopt::Vector const&amp;, double)&#39;</div>

<div>/tmp/cconNijV.o:(.rodata._ZTVN5Ipopt6VectorE[vtable for Ipopt::Vector]+0xe0): undefined reference to `Ipopt::Vector::HasValidNumbersImpl() const&#39;</div><div>collect2: ld returned 1 exit status</div><div><br></div>

<div><br></div>
</div>