Souranalyzer,强化给出错误无法识别或无效的命令行参数'-o'

Souranalyzer, fortify giving error Unrecognized or invalid command line argument '-o'

我正在 运行 以强化模式在 linux 上构建。以下命令在 build

中获取 运行
/usr/local/packages/fortify_360/bin/sourceanalyzer -Xmx1512M -b FORTIFY -Dcom.fortify.sca.ProjectRoot=/ade/ka/dbss/utl/fortify -jdk 1.5 -c /ade/ka_View_12.2/xa/bin/orscript -o /ade/ka/xa/dbsa/bin/avorclcoll -m64 -z noexecstack -Wl,--disable-new-dtags -L/ade/ka/xa/dbsa/lib/ -L/ade/ka/xa/lib/ -L/ade/ka/xa/lib/stubs/ /ade/ka/oracle/dbsa/lib/zaorclmain.o     -lclntsh -lclntshcore -lclient12 -lavclient12 -lnnz12 -lmql1 -lipc1 -ldl -lm -lpthread -lnsl -lrt -lc   -Wl,-R

当我 运行 这个我得到错误 Unrecognized or invalid command line argument '-o'

但是如果我用 gcc 替换脚本 /ade/ka_View_12.2/xa/bin/orscript,它工作正常。
我的脚本 /ade/ka_View_12.2/xa/bin/orscript 有以下代码,在这段代码中我只有一个变量 CC = gcc 和参数

的“$@”
#!/bin/sh
#
# $Header: buildtools/port/orald /linuxamd64/3 2012/10/02 19:28:56 ekarichk 
#
# orscript
#
CC=gcc
#
# Just use CC for now
#
exec ${CC} "$@"
exit 1

请帮忙,我已经为这个错误苦苦挣扎了很长时间:(

查看 C/C++ 构建的帮助 运行:

sourceanalyzer -h

您会看到 运行 扫描 C/C++ 代码有多种方式。一种是直接调用编译器,对应你例子中的成功案例。如果您想使用构建脚本,例如 make(或您的 "orscript"),那么您应该使用 touchless 参数,例如:

sourceanalyzer -Xmx1512M -b FORTIFY -Dcom.fortify.sca.ProjectRoot=/ade/ka/dbss/utl/fortify touchless /ade/ka_View_12.2/xa/bin/orscript {args}

注意:您也不需要指定 -jdk 参数,因为您没有分析 Java 代码。