Java プログラムをコンパイルすると、次のエラーが発生します。
error: Class names, 'EnumDevices', are only accepted if annotation
processing is explicitly requested
1 error
ここに Java コードがあります (Ubuntu で実行しています)。
import jcuda.CUDA;
import jcuda.driver.CUdevprop;
import jcuda.driver.types.CUdevice;
public class EnumDevices {
public static void main(String args[]) {
CUDA cuda = new CUDA(true);
int count = cuda.getDeviceCount();
System.out.println("Total number of devices: " + count);
for (int i = 0; i < count; i++) {
CUdevice dev = cuda.getDevice(i);
String name = cuda.getDeviceName(dev);
System.out.println("Name: " + name);
int version[] = cuda.getDeviceComputeCapability(dev);
System.out.println("Version: " +
String.format("%d.%d", version[0], version[1]));
CUdevprop prop = cuda.getDeviceProperties(dev);
System.out.println("Clock rate: " + prop.clockRate + " MHz");
System.out.println("Threads per block: " + prop.maxThreadsPerBlock);
}
}
}
javac コマンドは次のとおりです。
javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices
このプログラムをコンパイルするにはどうすればいいですか?
ベストアンサー1
少なくとも.java
次の行のファイル名に拡張子を追加する必要があります。
javac -cp /home/manish.yadav/Desktop/JCuda-All-0.3.2-bin-linux-x86_64 EnumDevices
から公式FAQ:
クラス名「HelloWorldApp」は、注釈処理が明示的に要求された場合にのみ受け入れられます。
このエラーが発生した場合は、プログラムをコンパイルするときに .java サフィックスを含めることを忘れています。コマンドは javac HelloWorldApp ではなく javac HelloWorldApp.java であることに注意してください。
.java
また、2番目のjavac-example(実際に含まれている)では、全てコンパイルに必要な .jar ファイル。