2010-04-12 91 views
1

当我尝试在vC++中使用“cl”命令创建共享库文件时,它显示一个错误,说"fatal error c1083: can't open compiler generated file 'file.obj':permission denied"。 任何人都可以帮助我...?从C++创建共享库

+0

为什么被标记为“java”? – 2010-04-12 09:54:09

+0

你想在哪个目录下编译它?你究竟输入了什么命令? (@Neil Butterworth:retagged) – 2010-04-12 09:55:43

+0

C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC> cl -I“c:\ Program Files \ Java \ jdk1.6.0_18 \ include”-I“c:\ Program Files \ Java \ jdk1.6.0_18 \ include \ win32“-I”c:\ Users \ 402100 \ Documents \ jni和cpp \ jni \ build \ classes \ jniandcpp \ Main.h“-LD”c:\ Users \ 402100 \ Documents \ JNI和CPP \ JNI \建立\类\ jniandcpp \ file.cpp” -Fe newfile.dll 这是命令笏我打字... – robi 2010-04-12 10:19:51

回答

0

它在其他一些应用程序,我猜写模式打开...

+0

tnku 4 ur respons ....但是,它不是在任何应用程序中打开.. – robi 2010-04-12 10:44:04

+0

-l代表什么...? – 2010-04-12 10:52:09

+0

这将在给定的路径中搜索给定的包含文件... – robi 2010-04-12 10:58:14

2

Permission denied错误来,因为当前的工作目录“C:\ Program Files文件\微软的Visual Studio 9.0 \ VC”是哪里编译器会写它的临时文件等(因为你没有指定一个备用路径)。您可能没有对此位置的写入权限,因此错误。

你基本上有两种选择:

  1. 更改目录到你已经写访问,然后调用cl.exe时的位置。 (如果您使用Visual Studio命令提示符,cl.exe应该位于您的路径中,您不必担心指定编译器的完整路径)。
  2. 为您的DLL指定一个输出目录(并且编译器将使用相同的中间文件路径)。