Pregunta

He compilado el NTL effects Infinidad de precisión entero biblioteca de aritmética para C ++, utilizando Microsoft Visual Studio 2008. Hice lo que explica, por este sitio , utilizando la interfaz de Visual Studio, en lugar de desde el símbolo del sistema. En realidad, yo prefiero hacerlo desde el símbolo del sistema, pero no estaba seguro de cómo.

De todos modos, tengo la biblioteca compilada, y ahora quiere compilar un programa usando la biblioteca, desde el símbolo del sistema. El programa que estoy tratando de recopilar, ha sido probado en un sistema Linux, donde compilo con el siguiente

c++ -I/appl/htopopt/Linux_x86_64/NTL-5.4.2/include mpqs.cpp main.cpp -o main -L/appl/htopopt/Linux_x86_64/NTL-5.4.2/lib -lntl -L/appl/htopopt/Linux_x86_64/gmp-4.2.1/lib -lgmp -lm

No importa el material GMP, no tengo que instala en Windows. Es puramente una cosa opcional que hará que la carrera NTL más rápido. De todos modos, esto funciona bien en Linux. Ahora en Windows escribo lo siguiente

cl /EHsc /I D:\Downloads\WinNTL-5_5_2\include mpqs.cpp main.cpp /link /LIBPATH:"D:\Documents\Visual Studio 2008\Projects\ntl\Debug"

Sin embargo, esto da lugar a los siguientes errores:

mpqs.cpp
mpqs.cpp(38) : error C2039: 'find_smooth_vals' : is not a member of 'QS'
        d:\desktop\qs\mpqs.h(12) : see declaration of 'QS'
mpqs.cpp(41) : error C2065: 'M' : undeclared identifier
mpqs.cpp(41) : error C2065: 'n' : undeclared identifier
mpqs.cpp(42) : error C2065: 'sieve_table' : undeclared identifier
mpqs.cpp(42) : error C2228: left of '.size' must have class/struct/union
        type is ''unknown-type''
mpqs.cpp(43) : error C2065: 'sieve_table' : undeclared identifier
mpqs.cpp(44) : error C2065: 'qx_table' : undeclared identifier
mpqs.cpp(44) : error C3861: 'test_smoothness': identifier not found
mpqs.cpp(45) : error C2065: 'smooth_indices' : undeclared identifier
mpqs.cpp(45) : error C2228: left of '.push_back' must have class/struct/union
        type is ''unknown-type''
main.cpp
Generating Code...

Es como si, mi archivo mpqs.h no está incluido en el proceso de compilación? También yo no entiendo por qué se queja de .push_back () para un tipo de vectores?

Ayuda es muy apreciada!

¿Fue útil?

Solución

es, sin duda ser incluido mpqs.h como la salida le pide que se refieren a ella.

En vista de que MPQS.h no parece ser incluidos en la biblioteca NTL ... lo escribiste? Si es así se puede colocar el código de arriba?

Además, en caso de que no se incluye el archivo de biblioteca en alguna parte en su construcción?

Edit: No hay función find_smooth_values ??¿por qué debe esperar MSVC para encontrarlo? No estoy seguro de por qué que compila bajo GCC pero su claramente ausente. Supongo que los otros errores son causados ??por éste. Los errores están diciendo cosas. Deberías escucharlos.

push_back está fallando porque no sabe lo que el tipo que está tratando de push_back en es. De nuevo, esto es probablemente causado por el hecho de que no existe find_smooth_values. Trate de añadir el prototipo de función en la clase QS. Esto bien puede solucionar todos sus problemas.

En cuanto a la biblioteca no se llega a utilizar la biblioteca hasta la compilación tiene éxito. Así que no se preocupe por eso ahora. Entra allí y corregir los errores que MSVC es la presentación de informes!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top