#include <gtk/gtk.h>
int main( int argc, char *argv[] )
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
Я пытался поместить различные версии MSVCR80.dll
в тот же каталог, что и сгенерированный исполняемый файл (через cmake
), но ни одна не соответствовала.
Есть ли общее решение для такой проблемы?
UPDATE
В некоторых ответах рекомендуется установить Redist VS, но я не уверен, повлияет ли это на мою установленную Visual Studio 9, кто-то может подтвердить?
Манифест файла исполняемого файла
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
Кажется, файл манифеста говорит, что он должен использовать MSVCR90
, поэтому он всегда сообщает об отсутствии MSVCR80.dll
?
НАЙДЕНО
Потратив на это несколько часов, я наконец обнаружил, что это вызвано этим параметром в PATH
:
D:\MATLAB\R2007b\bin\win32
После удаления все работает нормально. Но почему этот параметр может повлиять на мой исполняемый файл от использования msvcr90 до msvcr80 ???