Estoy intentando instalar SymbolicC++ desde SymbolicC++3-3.35-ac.tar en Ubuntu 15.10. Hice un ./configure, make, sudo make install sin errores.
Traté de compilar lo siguiente con g++ test1.cpp -lsymbolicc++ :
#include <iostream> #include "symbolicc++.h" using namespace std; int main(void) { Symbolic x("x"); cout << integrate(x+1, x) <<endl; // => 1/2*x^(2)+x Symbolic y("y"); cout << df(y, x) << endl; // => 0 cout << df(y[x], x) << endl; // => df(y[x],x) cout << df(exp(cos(y[x])), x) << endl ; // => -sin(y[x])*df(y[x],x)*e^cos(y[x]) return 0; }Este código era del artículo de Wikipedia sobre SymbolicC++
Recibo los siguientes errores:
doug@doug-Z170X-UD5:~/books_computerAlgebraSys$ g++ test1.cpp -lsymbolicc++ /usr/local/lib/libsymbolicc++.so: undefined reference to `Number<double>::Number(double const&)' /usr/local/lib/libsymbolicc++.so: undefined reference to `Number<int>::Number(int const&)' collect2: error: ld returned 1 exit statusIntente agregar "-fno-elide-constructors" a la línea de comandos de g++:
g++ test1.cpp -lsymbolicc++ -fno-elide-constructorsDesde la página principal del proyecto http://issc.uj.ac.za/symbolic/symbolic.html :
Los usuarios de SymbolicC++ con GCC en 64 bits pueden necesitar usar el indicador -fno-elide-constructors.
Editar : Pero eso parece aplicarse más a la versión de la biblioteca de solo encabezado (hay dos versiones, solo de encabezado y la versión de la biblioteca Autoconf). Pero probé con su ejemplo y la biblioteca AC y para mí se construye y funciona bien incluso sin los "-fno-elide-constructors" (Ubuntu 14.04 de 64 bits, g ++ 4.8.4).
Edición 2 : para concluir, parece que la versión autoconf de la biblioteca no funciona en todas las máquinas por algún motivo. Con la biblioteca de solo encabezado, el -fno-elide-constructors debe usarse con 64 bits y la opción -I para apuntar a la ubicación de los encabezados (donde se desempaqueta la biblioteca):
g++ test1.cpp -fno-elide-constructors -I<path_to_headers>