Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





warnings molestos al linkar

Iniciado por marcode, 28 de Noviembre de 2006, 03:09:29 PM

« anterior - próximo »

marcode

¿Alguien sabe como puedo quitar o solucionar estos mensajes del VC++ al linkar una librería estática?, no me afectan para nada pero molestan.
Citar
user32.lib(USER32.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gdi32.lib(GDI32.dll); second definition ignored

user32.lib(USER32.dll) : warning LNK4221: no public symbols found; archive member will be inaccessible
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

Warchief


marcode

Esa es la solución de ponerme la venda en los ojos pero si no hay más remedio lo haré.

¿Esa directiva dónde la tengo que poner?, ¿en todos los archivos?, es un poco coñazo y más si tengo que usar los push/pop, ¿no se podrá indicar en alguna opción del proyecto?.

Aunque lo ideal sería resolverlo para que no salga  :(
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

shephiroth

Hay una opcion un poco engorrosa.....

Veamos, en tu proyecto vete a Proyect->settings. Te pones en debug, y en la parte de la izquierda buscas los .cpp de la libreria. Si tiene mas de uno, pues uno a uno tendras que hacerlo en todos.

Cuando selecciones un .cpp en la derecha te quedaran solo 2 pestañas, GENERAL y C/C++. Selecciona C/C++. En la categoria pon normal, y en warning level ponle NONE.

Si utilizas algun .NET si que tiene la opcion de especificarle que numero de warning quieres eliminar (yo la verdad lo uso mucho), pero en el vc++ 6.0 no se otra manera ^^;

SUERTE ^^

Warchief

Hay que ponerlo en la sección de código que produce el warning. Veamos soluciones para cerrar los ojos:

1) Importa la librería no de sistema así
//
#pragma warning ( push )

#pragma warning( disable : 4006 )
#pragma warning( disable : 4221 )

// Importar por aquí en vez de en los project settings
#pragma comment( lib, "NombreLibreria.lib" )

#pragma warning (pop)


No lo he probado, así que si no funciona, sorry ;)

2) Si las dos son de sistema, ¿puedes quitar 1? En ese caso puedes poner quitarla (la opción NODEFAULTLIB = En linker > Ignore specific library)

3) Si las dos son necesarias, no puedes solucionar los errores? (es decir, ¿tienes acceso al código?)

4) ¿Se podría poner un

#pragma comment( lib, "NombreLibreria.lib" )
#undef __NULL_IMPORT_DESCRIPTOR
#define
#pragma comment( lib, "OtraLibreria.lib" )

La verdad es que no tengo ni idea de si funciona, porque es cosa del preprocesador ordenar todo esto, pero por probar ...






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.