无法在 Ubuntu 上运行可执行文件,终端需要 sudo,或者给出“无效或不完整的多字节或宽字符”等错误

无法在 Ubuntu 上运行可执行文件,终端需要 sudo,或者给出“无效或不完整的多字节或宽字符”等错误

我试图在 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

相关内容