2010-04-12 220 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指定一個輸出目錄(並且編譯器將使用相同的中間文件路徑)。