Por favor, ayuda, he pasado todo el día tratando de compilar mi aplicación C++.LINK: error fatal LNK 1104: no se puede abrir el archivo 'LIBCMT.lib'
Mi proyecto contiene un archivo fuente: Foo.cpp. Aquí es su código:
#include <jni.h>
#include <com_Foo.h>
JNIEXPORT jint JNICALL Java_com_Foo_add
(JNIEnv * env, jobject obj, jint x, jint y)
{
return x+y;
}
como se puede ver que estaba tratando de usar JNI, pero yo no creo que tenga nada que ver con el problema. Esto es lo que he intentado en la línea de comandos:
C:\Users\michael\cworkspace\foo>cl -LD Foo.cpp -FeFoo.dll
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
Foo.cpp
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
/dll
/implib:Foo.lib
/out:Foo.dll
Foo.obj
LINK : fatal error LNK1104: cannot open file 'LIBCMT.lib'
En mi entorno he puesto:
INCLUYEN: C: _ \ include; C: \ frankenstein \ incluye; C: \ Archivos de programa \ Java \ jdk1.6.0_24 \ include; C: \ Archivos de programa \ Java \ jdk1.6.0_24 \ include \ win32; C: _ \ include \ win32; C: \ Archivos de programa (x86) \ Microsoft Visual Studio 10.0 \ VC \ incluir
LIBPATH: C: \ archivos de programa (x86) \ Microsoft Visual Studio 10.0 \ VC \ lib
Revisé en el directorio lib, contiene un archivo "libcmt.lib". No sé si es sensible a las mayúsculas y minúsculas, pero sé que nunca cambié nada en los archivos o directorios del estudio visual.
¿Alguien podría decirme cómo puedo hacer que esto funcione?
Por cierto, este archivo existe en mi disco: C: \ _ \ include \ com_Foo.h, la dependencia de libcmt debe venir indirectamente del jni.h include. – msknapp
Creo que esto podría deberse a no crear el código en Visual Studio, pero tratando de usar su compilador de todos modos. Creé la aplicación en Code :: Blocks, y cuando no pude hacer funcionar el compilador MinGW32 g ++, intenté usar el compilador de Visual Studio. Tal vez asume una cierta configuración de proyecto. ¿Es posible que el compilador de Visual Studio solo funcione cuando el proyecto se construyó en Visual Studio? – msknapp
Este es quizás un hilo bastante viejo, pero desde que lo encontré ahora, pensé que podría ser útil. La respuesta de @ mrsheen a continuación funcionó para mí, pero tuve que ejecutar el programa desde el cmd del desarrollador en lugar de desde el normal (donde persistía el error). Solo un FYI para alguien que aún podría estar buscando esto por ahí. – prateek1592