Ubuntuで実行可能ファイルを実行しようとしても機能しません。しかし、私と同じUbuntu 12.04を実行している他のコンピュータでも、同じ実行ファイルが正しく実行されます。これに基づいて、私はここに質問を投げます。Ubuntuでコンパイルされたファイルを実行します。
しかし、今問題はコンパイルされたファイルにはないことに気づきました。非常に単純な.cppファイルを作成してテストしましたが、Ubuntuではまだ実行できません。
以下は簡単なtest.cppです。
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char **argv )
{
printf ("Hello, this test worked!");
return 0;
}
それから私はそれをコンパイルしました:
g++ `pkg-config --cflags opencv` -o test test.cpp
それから実行してみてください。
./test
しかし、エラーが発生します。
bash: ./test: Permission denied
だからsudoを使ってみました。
sudo ./test
それは私が提供したユーザーパスワードを尋ねましたが、次のように言いました。
sudo: ./test: command not found
では、実行ファイルをどのように実行できますか?
編集する
Wubiインストーラを使用してWindowsにUbuntuをインストールしました。
私が実行したとき:
pkg-config --cflags opencv
わかりました:
-I/usr/local/include/opencv -I/usr/local/include
私が走るとき
df .
それは言う:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/loop0 17596475 6112377 11484098 35% /
私が実行したとき:
cat /proc/mounts
その後、出力は次のようになります。
rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,relatime,size=1944900k,nr_inodes=486225,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,relatime,size=781788k,mode=755 0 0
/dev/sda4 /host fuseblk rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0
/dev/loop0 / ext3 rw,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered 0 0
none /sys/fs/fuse/connections fusectl rw,relatime 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/kernel/security securityfs rw,relatime 0 0
none /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
none /run/shm tmpfs rw,nosuid,nodev,relatime 0 0
gvfs-fuse-daemon /home/asaaki/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0
答え1
間違ってコンパイルしましたか?次のようにする必要はありませんか?
g++ `pkg-config --cflags opencv` -o test.cpp test
または
g++ `pkg-config --cflags opencv` test.cpp -o test