c - 当我从 tcl 脚本调用 c 二进制文件时出错

标签 c linux terminal tcl

我已经使用 .c 创建了(可执行的)二进制“示例”

 gcc sample.c -o sample

已成功创建名为 sample 的二进制文件。

当我从像 ./sample 这样的终端运行它时,它会显示一个结果..

但是当我像 exec ./sample 这样从我的 tcl 运行它时,它显示像 ./sample no such file or directory..

这样的错误

谁能帮我解决上面的错误

最佳答案

如果 current 目录中的 sample 是可执行的,exec ./sample 应该可以运行。当然,假设二进制文件本身在运行时不会生成该错误消息。 (默认情况下,stderr 上的消息将成为 Tcl 中的错误。)

检查 puts [pwd] 是否告诉您预期的位置;如果您在脚本的其他地方有 cd,那么该相对路径将不再有效。如果这是问题所在,请使用编译文件的完整、绝对 路径。 (您可以使用 file normalize sample 在脚本的开头计算它,但是您必须在 cd 之前执行此操作;好的库包不要使用 cd 正是因为它太困惑了,同时通常对他们来说完全没有必要……)

如果 file exists ./sample 为真(并且 file executable ./sample 也为真,如果它刚刚由编译器生成则应该如此)然后在执行失败后立即检查 errorInfoerrorCode 全局变量的内容。他们可能会更多地指出哪里出了问题。 (或者可能不是;不能确定。)

关于c - 当我从 tcl 脚本调用 c 二进制文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20703281/

相关文章:

c - C 中使用实数变量的关系运算符

c++ - "Socket operation on non-socket"错误由于奇怪的语法

xcode - iOS : Absolute project path with xcodebuild

macos - ImageMagick 转换缓存目录

ubuntu - 如何将默认终端设置为终结者?

c - 如何修复---->警告: extra tokens at end of#include directive

c - 函数未正确将数据读入数组

linux - 在 Linux 上将带有阿拉伯文本的 PDF 转换为图像

Linux shell脚本,多次使用变量

c++ - OpenSSL 添加可信系统证书