Per favore aiuto, ho passato tutto il giorno a cercare di compilare la mia app C++.LINK: errore irreversibile LNK 1104: impossibile aprire il file "LIBCMT.lib"
Il mio progetto contiene un file sorgente: Foo.cpp. Ecco il suo codice:
#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;
}
come si può vedere che stavo cercando di usare JNI, ma non credo che abbia a che fare con il problema. Ecco quello che ho provato sulla riga di comando:
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'
Nel mio ambiente ho impostato:
INCLUDE: C: _ \ include; C: \ frankenstein \ include; C: \ Program Files \ Java \ jdk1.6.0_24 \ include; C: \ Programmi \ Java \ jdk1.6.0_24 \ include \ win32; C: _ \ include \ win32; C: \ Programmi (x86) \ Microsoft Visual Studio 10.0 \ VC \ includere
LIBPATH: C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ lib
Ho controllato la directory lib, contiene un file "libcmt.lib". Non so se è case sensitive, ma so che non ho mai cambiato nulla nei file o nelle directory di Visual Studio.
Qualcuno potrebbe dirmi come posso farlo funzionare?
BTW, questo file esiste sul mio disco: C: \ _ \ include \ com_Foo.h, la dipendenza da libcmt deve provenire indirettamente da jni.h include. – msknapp
Penso che questo potrebbe derivare dal non creare il codice in Visual Studio, ma provare ad usare comunque il suo compilatore. Ho creato l'applicazione in Code :: Blocks e, quando non sono riuscito a far funzionare il compilatore g ++ MinGW32, ho provato a utilizzare il compilatore di Visual Studio. Forse presuppone una certa configurazione del progetto. È possibile che il compilatore di Visual Studio funzioni solo quando il progetto è stato realizzato in Visual Studio? – msknapp
Questo è forse un thread piuttosto vecchio, ma da quando mi sono imbattuto in questo momento, ho pensato che potesse essere utile. @ La risposta di mrsheen in basso ha funzionato per me, ma ho dovuto eseguire il programma dal cmd dello sviluppatore anziché dal normale (dove l'errore persisteva). Solo una FYI per qualcuno che potrebbe ancora essere alla ricerca di questo là fuori. – prateek1592