1

我想在 Firefox 59 版上以编程方式安装证书。我读到我需要 CertUtil,但我在 github 上获得的 certutil 代码是从旧 NSS 构建的。所以它只生成 cert8.db 而不是 Cert9.db,我假设 Firefox 59 需要它。

因此,如果我是正确的,我需要构建 NSS 3.35 或更高版本才能拥有 Certutil 对吗?我去这个站点设置 Windows Prerequisite 并下载了 mozilla 构建。并且能够建造它。但它很长,所以我取消了它。我还安装了带有 C++ 编译器的 Visual Studio 2017 社区版。

https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Windows_Prerequisites https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Building

所以我有一个工作的 mozilla-build 文件夹和工作的 bash 提示符。我已经将 nspr 和 nss 克隆到我的本地文件夹中。

因此,当我执行构建 nss 的命令时,出现此错误。那个 C 编译器不工作。当我检查 console.log 时,这就是我得到的。

该文件包含编译器在运行 configure 时产生的任何消息,以帮助在 configure 出错时进行调试。

它是由 GNU Autoconf 2.69 生成的 configure 创建的。调用命令行是

  $ ../configure --enable-win32-target=WIN95 --with-dist-prefix=$(topsrcdir)/../dist/WIN954.0_DBG.OBJ --with-dist-includedir=$(topsrcdir)/../dist/WIN954.0_DBG.OBJ/include

## --------- ##
## Platform. ##
## --------- ##

hostname = DESKTOP-I6DF9LK
uname -m = i686
uname -r = 1.0.19(0.48/3/2)
uname -s = MINGW32_NT-6.2
uname -v = 2016-07-13 17:45

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /local/bin
PATH: /c/mozilla-build/bin
PATH: /c/mozilla-build/kdiff3
PATH: /c/mozilla-build/node-v8.11.1-win-x64
PATH: /c/mozilla-build/nsis-3.01
PATH: /c/mozilla-build/python
PATH: /c/mozilla-build/python/Scripts
PATH: /c/mozilla-build/python3
PATH: /c/mozilla-build/python3/Scripts
PATH: .
PATH: /usr/local/bin
PATH: /mingw/bin
PATH: /bin
PATH: /c/WINDOWS/System32
PATH: /c/WINDOWS
PATH: /c/WINDOWS/System32/Wbem
PATH: /c/Users/ROMMELDVO/.cargo/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2383: checking build system type
configure:2397: result: i686-pc-mingw32
configure:2417: checking host system type
configure:2430: result: i686-pc-mingw32
configure:2450: checking target system type
configure:2463: result: i686-pc-mingw32
configure:2543: checking for cl
configure:2570: result: cl
configure:3054: checking for whoami
configure:3072: found /c/WINDOWS/System32/whoami
configure:3085: result: /c/WINDOWS/System32/whoami
configure:3481: checking for C compiler version
configure:3490: cl --version >&5
../configure: line 3492: cl: command not found
configure:3501: $? = 127
configure:3490: cl -v >&5
../configure: line 3492: cl: command not found
configure:3501: $? = 127
configure:3490: cl -V >&5
../configure: line 3492: cl: command not found
configure:3501: $? = 127
configure:3490: cl -qversion >&5
../configure: line 3492: cl: command not found
configure:3501: $? = 127
configure:3521: checking whether the C compiler works
configure:3543: cl    conftest.c  >&5
../configure: line 3545: cl: command not found
configure:3547: $? = 127
configure:3585: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define DEBUG 1
| /* end confdefs.h.  */
| 

我不明白为什么它不能运行 cl 编译器。因为当我运行 VS 2017 的开发人员命令提示符时,我可以执行 cl。

我不知道是什么导致了这个错误。是因为bash无法识别c Compiler cl吗?我必须设置其他环境变量吗?

我希望有人可以帮助我解决这个问题。或者,如果有人使用 Certutil.exe 编译了 NSS 3.35,那将有很大帮助。

非常感谢,隆美尔

4

0 回答 0