bash:没有那个文件或目录

bash:没有那个文件或目录

我编写了一个使用 GTK+ 可视化界面的简单 C 程序(如果相关,我可以发布代码)。我可以使用以下命令编译它而不会出现错误或警告:

gcc -c s9p2.c 
pkg-config --cflags glib-2.0
pkg-config --cflags gtk+-2.0

其中 s9p2.c 是程序名称。但是,当我尝试运行该程序时,我得到了以下信息:

bash: ./s9p2: No such file or directory

我已经使用 ls 命令检查过,文件确实在那里。我也尝试过安装。我尝试在 Google 上搜索解决方案,找到的解决方案是安装 ia32-libs 包。我这样做了,但没有成功。

我将非常感激您的帮助。如果我没有说清楚,请原谅。

编辑:正如所问,这是 ls -l s9p2* 的输出:

-rw-rw-r-- 1 francisco francisco 2492 Jan  3 19:11 s9p2.c
-rw-rw-r-- 1 francisco francisco 6616 Jan  3 21:13 s9p2.o

答案1

您的主要错误是将-c标志添加到您的命令中 -gcc告诉编译源文件(产生一个物件代码文件s9p2.o)但还不够链接它与创建可执行程序所需的库一起(s9p2

正确的命令应该是这样的

gcc -o s9p2 `pkg-config --cflags glib-2.0` s9p2.c `pkg-config --libs gtk+-2.0`

或者

gcc -o s9p2 s9p2.c `pkg-config --cflags --libs gtk+-2.0`

答案2

首先,c 文件不是程序,而是二进制可执行文件s9p2(无扩展名),除非您指定了编译时的其他内容。假设您已编译为可执行文件,则需要将其作为程序执行(如果尚未执行):

该文件不可执行,请尝试运行:

chmod +x s9p2

相关内容