<div dir="ltr"><div>Hi Roberto,</div><div><br></div><div>Your suggestions in this thread worked and I was indeed able to confirm on a windows machine that my pure PPL code worked just fine. Unfortunately, for us (and no fault of PPL), the rest of our code which uses CPLEX and MinGW is just impossibly difficult to configure correctly in Visual Studio IDE. In any case, we have put that on the back burner for now.</div><div><br></div><div>On WSL (on this same windows machine), I installed through the procedure specified in README.configure which is:</div><div><br></div><div> $ tar jxf ppl-x.y.tar.bz2 (after downloading the .bz2 file from bugseng website)<br> $ ./configure<br> $ make<br> $ su<br> Password: <root password><br> $ make install<br></div><div><br></div><div>My PPL C/C++ code (available at <a href="https://godbolt.org/z/qq8oxqb9W" target="_blank">https://godbolt.org/z/qq8oxqb9W</a>) worked perfectly there. (If it would help other users of PPL, they can freely use the code suitably modified for their purposes. It provides a clean C++ example of performing V to H conversion via PPL) My makefile performs the following compiling/linking commands:</div><div><br></div><div>g++ -m64 -fno-common -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DVSCODE   -c -g -DIL_STD -D_LINDEBUG -I. -std=c++14 -MMD -MP -MF "build/Debug/GNU-Linux/_ext/511e4115/Main.o.d" -o build/Debug/GNU-Linux/_ext/511e4115/Main.o ../src/Main.cpp<br>mkdir -p dist/Debug/GNU-Linux<br>g++ -m64 -fno-common -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DVSCODE    -o dist/Debug/GNU-Linux/linux build/Debug/GNU-Linux/_ext/511e4115/Main.o  -lm -lpthread -ldl -lppl -lgmp<br></div><div><br></div><div>The above workflow works perfectly fine and I am able to obtain the facetial representation of the vertices. So far, so good.</div><div><br></div><div>Now, however, I recall you mentioning earlier in the thread that the above method of installation is NOT recommended. You had suggested to use the git development branch instead. So, I removed libppl files from /usr/local/lib and tried to redo it along your suggested recommendation. That is:</div><div><br></div><div>I navigated to home.</div><div>git clone git://<a href="http://git.bugseng.com/ppl/ppl.git">git.bugseng.com/ppl/ppl.git</a><br></div><div>Navigate to ppl subfolder.<br>run "autoreconf"<br>./configure --with-cxxflags=-std=c++11 --enable-optimization --disable-debugging --disable-documentation --enable-interfaces="c cxx" --enable-ppl_lcdd --disable-ppl_lpsol --disable-ppl_pips --enable-instantiations=Polyhedron --disable-shared --enable-static --disable-assertions<br>Run "make"<br>Run "sudo make install"<br></div><div><br></div><div>With this done, I tried to compile the same code. Now, I get a series of undefined references during linking stage:</div><div><br></div><div>g++ -m64 -fno-common -fPIC -fno-strict-aliasing -fexceptions -fopenmp -DVSCODE    -o dist/Debug/GNU-Linux/linux build/Debug/GNU-Linux/_ext/511e4115/Main.o  -lm -lpthread -ldl -lppl -lgmp<br>/usr/bin/ld: /usr/local/lib/libppl.a(Constraint.o): in function `Parma_Polyhedra_Library::IO_Operators::operator<<(std::ostream&, Parma_Polyhedra_Library::Constraint const&)':<br>Constraint.cc:(.text+0x1597): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: Constraint.cc:(.text+0x1641): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: Constraint.cc:(.text+0x1793): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(Generator.o): in function `Parma_Polyhedra_Library::Generator::fancy_print(std::ostream&) const':<br>Generator.cc:(.text+0x166f): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: Generator.cc:(.text+0x16eb): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(Linear_Expression.o):Linear_Expression.cc:(.text._ZNK23Parma_Polyhedra_Library22Linear_Expression_ImplINS_9Dense_RowEE10ascii_dumpERSo[_ZNK23Parma_Polyhedra_Library22Linear_Expression_ImplINS_9Dense_RowEE10ascii_dumpERSo]+0x8f): more undefined references to `operator<<(std::ostream&, __mpz_struct const*)' follow<br>/usr/bin/ld: /usr/local/lib/libppl.a(Linear_Expression.o): in function `Parma_Polyhedra_Library::Linear_Expression_Impl<Parma_Polyhedra_Library::Sparse_Row>::ascii_load(std::istream&)':<br>Linear_Expression.cc:(.text._ZN23Parma_Polyhedra_Library22Linear_Expression_ImplINS_10Sparse_RowEE10ascii_loadERSi[_ZN23Parma_Polyhedra_Library22Linear_Expression_ImplINS_10Sparse_RowEE10ascii_loadERSi]+0x196): undefined reference to `operator>>(std::istream&, __mpz_struct*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(Linear_Expression.o): in function `Parma_Polyhedra_Library::Linear_Expression_Impl<Parma_Polyhedra_Library::Dense_Row>::ascii_load(std::istream&)':<br>Linear_Expression.cc:(.text._ZN23Parma_Polyhedra_Library22Linear_Expression_ImplINS_9Dense_RowEE10ascii_loadERSi[_ZN23Parma_Polyhedra_Library22Linear_Expression_ImplINS_9Dense_RowEE10ascii_loadERSi]+0x12d): undefined reference to `operator>>(std::istream&, __mpz_struct*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(CO_Tree.o): in function `Parma_Polyhedra_Library::CO_Tree::dump_subtree(Parma_Polyhedra_Library::CO_Tree::tree_iterator)':<br>CO_Tree.cc:(.text+0x98c): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(Sparse_Row.o): in function `Parma_Polyhedra_Library::Sparse_Row::ascii_dump(std::ostream&) const':<br>Sparse_Row.cc:(.text+0x3a48): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(Sparse_Row.o): in function `Parma_Polyhedra_Library::Sparse_Row::ascii_load(std::istream&)':<br>Sparse_Row.cc:(.text+0x63b9): undefined reference to `operator>>(std::istream&, __mpz_struct*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(Dense_Row.o): in function `Parma_Polyhedra_Library::Dense_Row::ascii_dump(std::ostream&) const':<br>Dense_Row.cc:(.text+0xe43): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(Dense_Row.o): in function `Parma_Polyhedra_Library::Dense_Row::ascii_load(std::istream&)':<br>Dense_Row.cc:(.text+0x105f): undefined reference to `operator>>(std::istream&, __mpz_struct*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(Congruence.o): in function `Parma_Polyhedra_Library::Congruence::ascii_dump(std::ostream&) const':<br>Congruence.cc:(.text+0x346): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(Congruence.o): in function `Parma_Polyhedra_Library::Congruence::ascii_load(std::istream&)':<br>Congruence.cc:(.text+0x483): undefined reference to `operator>>(std::istream&, __mpz_struct*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(Congruence.o): in function `Parma_Polyhedra_Library::IO_Operators::operator<<(std::ostream&, Parma_Polyhedra_Library::Congruence const&)':<br>Congruence.cc:(.text+0x131f): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: Congruence.cc:(.text+0x1368): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: Congruence.cc:(.text+0x13b9): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: Congruence.cc:(.text+0x1451): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(Grid_Generator.o): in function `Parma_Polyhedra_Library::Grid_Generator::fancy_print(std::ostream&) const':<br>Grid_Generator.cc:(.text+0x137f): undefined reference to `operator<<(std::ostream&, __mpz_struct const*)'<br>/usr/bin/ld: /usr/local/lib/libppl.a(Grid_Generator.o):Grid_Generator.cc:(.text+0x141e): more undefined references to `operator<<(std::ostream&, __mpz_struct const*)' follow<br>collect2: error: ld returned 1 exit status<br></div><div><br></div><div>Is there a way these undefined references can be resolved? In this method, I did not get any error in the ./configure, make or sudo make install step. If needed, I can share the log of these commands.</div><div><br></div><div>Thanks again for your patient help.</div><div>Tryer</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 10, 2022 at 1:02 AM Roberto Bagnara <<a href="mailto:bagnara@cs.unipr.it" target="_blank">bagnara@cs.unipr.it</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello Tryer.<br>
<br>
You need to help yourself more: in the repository there is<br>
a README file at the top level, which points to README.configure,<br>
which contains a section<br>
<br>
10. Using the Git Sources<br>
<br>
Kind regards,<br>
<br>
    Roberto<br>
</blockquote></div></div>