<div dir="ltr">Hi Alex, <div><br></div><div>While I am still having issues with running the C++ executable, I can see a few errors in your approach: </div><div><br></div><div>1. You will need the hs071_nlp.cpp (file containing the NLP implementation etc), hs071_nlp.hpp, hs071_main.cpp (file containing main, ipopt object etc.)</div><div>2. Once you have that, the correct syntax for compilation is: </div><div><br></div><div><div>C:\MinGW\bin\g++ -std=c++11 -DHAVE_CONFIG_H -o outputgpp.exe  hs071_nlp.cpp hs071_main.cpp -I"C:\Ipopt\3.11.2\include" -L"C:\Ipopt\3.11.2\lib" -lIpopt</div></div><div><br></div><div>Let me decode the various parts: </div><div><br></div><div>1, C:\MingGW\bin\g++ : is the path to my compiler, this can be different for you. Make sure this matches the bitness of the installed library though, 32-bit or 64-bit. </div><div>2. -std=c++11 : You are already using this flag, for compatibility with C++11</div><div>3. -DHAVE_CONFIG_H : This is a preprocessor macro needed to avoid the error:<font color="#ff0000"> 'FORTRAN_INTEGER_TYPE' does not name a type typedef FORTRAN_INTEGER_TYPE ipfint;</font></div><div><font color="#000000">4. -o output.exe : Name of executable, on linux you wont need .exe </font></div><div><font color="#000000">5. hs071 ... : All the C++ files you want to compile together. </font></div><div><font color="#000000">6. -I : path to include files</font></div><div><font color="#000000">7. -L : path to library </font></div><div><font color="#000000">8 -lIpopt : The actual libraries to be included</font></div><div><font color="#000000"><br></font></div><div><font color="#000000">You are missing the last two flags. </font></div><div><font color="#000000"><br></font></div><div><font color="#000000">Let me know if this works or not. </font></div><div><font color="#000000"><br></font></div><div><font color="#000000">Thanks </font></div><div><font color="#000000">Chintan Pathak </font></div><div><font color="#000000"><br></font></div><div><font color="#000000"><br></font></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><a href="https://about.me/chintanpathak" target="_blank">https://about.me/chintanpathak</a></div></div></div>
<br><div class="gmail_quote">On Wed, Aug 23, 2017 at 7:26 PM, Alexander Martinez-Marchese <span dir="ltr"><<a href="mailto:alex.martinezmarchese@outlook.com" target="_blank">alex.martinezmarchese@outlook.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr">
<div id="m_4879976764542972091divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p>Hi,</p>
<p><br>
</p>
<p>      I'm trying to run the C++ example described here:</p>
<p><br>
</p>
<p><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__www.coin-2Dor.org_Ipopt_documentation_node23.html&d=DwMFAw&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=EWqK7Xwyv36yJwUbXtvDBg&m=6yM-yfHCCrtJ8OZbSRQDhklOFM-iSrYBEdGZxMPl9_U&s=38hRoQg2Hhh5ZcyRi6uHr-8WF_Ix3rTuSDLNw6sF1MQ&e=" class="m_4879976764542972091OWAAutoLink" id="m_4879976764542972091LPlnk247022" target="_blank">https://www.coin-or.org/Ipopt/<wbr>documentation/node23.html</a></p>
<p><br>
</p>
<p><br>
</p>
<p>So I copied the files myexample.cpp, hs071_nlp.cpp and hs071_nlp.cpp and I run the following in the terminal (within Ubuntu linux):</p>
<p><br>
</p>
<p><span>c++ -std=c++11 myexample.cpp hs071_nlp.cpp -o myexample -I /home/alex/Ipopt-3.12.8/<wbr>include/coin</span></p>
<p><span><br>
</span></p>
<p><span>And I get the following error:</span></p>
<p><br>
<span></span></p>
<p></p>
<div>/tmp/ccIUQtXB.o: In function `main':<br>
myexample.cpp:(.text+0x52): undefined reference to `IpoptApplicationFactory'<br>
collect2: error: ld returned 1 exit status</div>
<p></p>
<p><br>
</p>
<p><br>
</p>
<p>I tested my IPOPT installation using 'make test' and I get this:</p>
<p></p>
<div><br>
</div>
<div>Running unitTests...<br>
Testing AMPL Solver Executable...<br>
    no AMPL solver executable found, skipping test...<br>
Testing C++ Example...<br>
    Test passed!<br>
Testing C Example...<br>
    Test passed!<br>
Testing Fortran Example...<br>
    Test passed!<br>
make[2]: Leaving directory '/home/alex/Ipopt-3.12.8/<wbr>Ipopt/test'<br>
make[1]: Leaving directory '/home/alex/Ipopt-3.12.8/<wbr>Ipopt'<br>
<br>
</div>
Do I need AMPL for the example? Am I linking the files correctly? Is there a 'bare bones' C++ example that doesn't use smart pointers or the IpoptApplicationFactory?
<p></p>
<p><br>
</p>
<p>I am able to use IPOPT from pyipopt to solve l-bfgs-b problems. The IPOPT installation was installed with the HSL files:
<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.hsl.rl.ac.uk_ipopt_&d=DwMFAw&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=EWqK7Xwyv36yJwUbXtvDBg&m=6yM-yfHCCrtJ8OZbSRQDhklOFM-iSrYBEdGZxMPl9_U&s=04wqPIYe1e-vYRqgwq1cWTBKKdSbU_hNPm1jJJuAxg4&e=" class="m_4879976764542972091OWAAutoLink" id="m_4879976764542972091LPlnk371685" target="_blank">
http://www.hsl.rl.ac.uk/ipopt/</a></p>
<p><br>
</p>
<p><br>
</p>
<p>Thank you,</p>
<p>Alex</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
</div>
</div>

<br>______________________________<wbr>_________________<br>
Ipopt mailing list<br>
<a href="mailto:Ipopt@list.coin-or.org">Ipopt@list.coin-or.org</a><br>
<a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__list.coin-2Dor.org_mailman_listinfo_ipopt&d=DwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=EWqK7Xwyv36yJwUbXtvDBg&m=6yM-yfHCCrtJ8OZbSRQDhklOFM-iSrYBEdGZxMPl9_U&s=bX1ii9JL_PyycsY_Ir0kukOwGwWEEwVrc8oqc-TFf50&e=" rel="noreferrer" target="_blank">https://urldefense.proofpoint.<wbr>com/v2/url?u=https-3A__list.<wbr>coin-2Dor.org_mailman_<wbr>listinfo_ipopt&d=DwICAg&c=Ngd-<wbr>ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLx<wbr>WPA_2Wlc4&r=<wbr>EWqK7Xwyv36yJwUbXtvDBg&m=6yM-<wbr>yfHCCrtJ8OZbSRQDhklOFM-<wbr>iSrYBEdGZxMPl9_U&s=bX1ii9JL_<wbr>PyycsY_Ir0kukOwGwWEEwVrc8oqc-<wbr>TFf50&e=</a><br>
<br></blockquote></div><br></div>