我试图在 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: command not found
那么我怎样才能运行可执行文件呢?
编辑
我已经使用 Wubi 安装程序将 Ubuntu 安装在 Windows 之上。
当我跑步时:
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