keil5中编写代码时出现语法错误为什么无显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keil5中编写代码时出现语法错误为什么无显示相关的知识,希望对你有一定的参考价值。

参考技术A 首先要强迫自己不能接受任何错误和警告,否则就无法写出优秀的代码(至少在编译器眼里)。 面对错误,我们必须改正,否则程序不能运行,在这个编译器里面C++函数如果不是void类型,那么必须有返回值,否则会报错。对比v5编译器,只是一个警告而已。
2.
其他错误按照C++语法规则修改即可。 面对警告,很多人选择了忽略,但是我是不能容忍的,要消除警告。大部分警告是可以消除的,面对消除不了的警告,只能上绝招了。

将代码从 mac 转移到 linux 机器时出现语法错误

【中文标题】将代码从 mac 转移到 linux 机器时出现语法错误【英文标题】:syntax error when taking a code from mac to linux machine 【发布时间】:2019-11-16 16:22:40 【问题描述】:

我编写了这段代码,用于在我的 Linux 远程机器上执行一些不同输入的重复实验。

#!/bin/bash
#timeout 10m
trap "exit 1" INT 

repeat() 
  executiontime=$( /usr/bin/time  /home/me/optimathsat-1.5.1-macos-64-bit/bin/optimathsat < file.smt2 2>&1 >/dev/null)
  echo "$executiontime">>results.csv


export -f repeat

for length in 30 ; do
    step=0.05
    short=0 #0
    long=1
    for i in 1..10; do
    ratio=0
        for j in 1..10; do
                declare -a listofresults
                echo "$length $short $long $ratio">>results.csv
                python3 main.py "$length" "$short" "$long" "$ratio">file.smt2
                chmod 775 file.smt2
                declare total=0
                declare m=0
                parallel -n0 repeat ::: 1..10
                ratio=$(echo "scale=10; ($ratio) + ($step)" | bc) 
            done
            short=$(echo "scale=10; ($short) + ($step)" | bc)
            long=$(echo "scale=10; ($long) - ($step)" | bc)
        done
    done
trap - INT

我已经在我自己的 mac 机器上执行了这段代码并且它可以工作(使用 gtime 而不是 /usr/bin/time )但是现在我收到了这个错误,我不知道它是什么意思/

   0inputs+0outputs (0major+66minor)pagefaults 0swaps
    /home/me/optimathsat-1.5.1-macos-64-bit/bin/optimathsat: 1: /home/project/optimathsat-1.5.1-macos-64-bit/bin/optimathsat:

 Syntax error: word unexpected (expecting ")")

当我尝试手动执行指令时,我得到了这个:

src$ python3 main.py 10 0.5 0.5 0.5>file.smt2

我检查了file.smt2,它应该是,然后发生这种情况

src$ /home/project/optimathsat-1.5.1-macos-64-bit/bin/optimathsat < file.smt2
    -bash: /home/project/optimathsat-1.5.1-macos-64-bit/bin/optimathsat: cannot execute binary file: Exec format error

【问题讨论】:

为什么用python标记? 错字:!/bin/bash 应该是#!/bin/bash 能否请您运行带有跟踪的脚本?那是$ bash -x myscript.sh。它将显示导致错误的行。见tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html @waffles123,请确保向我们显示准确的minimal reproducible example。我们不能指望猜测哪些错误是相关的,哪些不相关。复制和粘贴是最好的。 我认为问题出在optimathsat 程序中,而不是这个脚本中。 【参考方案1】: 您可以从使用跟踪$ bash -x myscript.sh 进行调试开始。它将显示导致错误的行。见The Linux Documentation Project's guide。 我总是觉得 macOS 不区分大小写,尽管它保留了大小写。也就是说,我可以在 macOS 上echo "Hello" &gt; foo; cat Foo,但在 Linux 上不行。 macOS 是基于 BSD,而不是基于 Linux。有一些基本命令在两个系统之间具有不同的标志。

希望这会有所帮助!

【讨论】:

以上是关于keil5中编写代码时出现语法错误为什么无显示的主要内容,如果未能解决你的问题,请参考以下文章

为啥在尝试更新数据库时出现语法错误?

为啥在我的 Postgres 函数中使用 IF 语句时出现语法错误?

尝试编写 MySQL 触发器以替换 phpmyadmin 上的 CHECK 约束时出现语法错误

通过 std::thread 将参数传递给函数时出现语法错误

尝试编译 reCAPTCHA 代码时出现 PHP 语法错误?

使用 C# windows 窗体向 Ms Access 数据库插入新记录时出现语法错误