我编写了一个使用 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