为提升您的使用体验,本站正在维护,部分功能暂时无法使用。如果本站文章无法解决您的问题,您想要向社区提问的话,请到 Twitter 上的 @FirefoxSupport 或 Reddit 上的 /r/firefox 提问,我们的支持社区将会很快回复您的疑问。

搜索 | 用户支持

防范以用户支持为名的诈骗。我们绝对不会要求您拨打电话或发送短信,及提供任何个人信息。请使用“举报滥用”选项报告涉及违规的行为。

详细了解

Build NSS 3.35 to get Certutil in Windows 10. Error, C Compiler cannot create executables

  • 2 个回答
  • 2 人有此问题
  • 15 次查看
  • 最后回复者为 cor-el

more options

Hello.

I would like to Install a certificate programmatically on Firefox version 59. I read that i need CertUtil, but the certutil code that i got on github is built from old NSS. so it only generates cert8.db and not Cert9.db, which Firefox 59 needs i assume.

So if i am correct, i need to build NSS 3.35 or higher to have a Certutil right? i went to this site to set the Windows Prerequisite and downloaded the mozilla build. and was able to build it. but it was very long so i cancelled it. I have also installed Visual Studio 2017 community Edition with the C++ compilers.

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

So i have a working mozilla-build folder and working bash prompt . And i have cloned the nspr and nss into my local folder.

So when i execute the command to build the nss, i get this error. that C compiler not working. And when i check the console.log, this is what i got.

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. */ | | int | main () | { | |  ; | return 0; | } configure:3590: error: in `/c/mynssbuild/nspr/WIN954.0_DBG.OBJ': configure:3592: error: C compiler cannot create executables See `config.log' for more details

I do not understand why its not able to run the cl compiler. Cause when i ran the developer command prompt for VS 2017, i can execute cl.

I don't know what is causing this error. Is it because bash cannot identify the c Compiler cl? do i have to set additional environment variables?

I hope someone can help me to solve this problem. Or if someone has a precompiled NSS 3.35 with Certutil.exe, that would greatly help.

Thank you very much, Rommel

Hello. I would like to Install a certificate programmatically on Firefox version 59. I read that i need CertUtil, but the certutil code that i got on github is built from old NSS. so it only generates cert8.db and not Cert9.db, which Firefox 59 needs i assume. So if i am correct, i need to build NSS 3.35 or higher to have a Certutil right? i went to this site to set the Windows Prerequisite and downloaded the mozilla build. and was able to build it. but it was very long so i cancelled it. I have also installed Visual Studio 2017 community Edition with the C++ compilers. 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 So i have a working mozilla-build folder and working bash prompt . And i have cloned the nspr and nss into my local folder. So when i execute the command to build the nss, i get this error. that C compiler not working. And when i check the console.log, this is what i got. 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. */ | | int | main () | { | | ; | return 0; | } configure:3590: error: in `/c/mynssbuild/nspr/WIN954.0_DBG.OBJ': configure:3592: error: C compiler cannot create executables See `config.log' for more details I do not understand why its not able to run the cl compiler. Cause when i ran the developer command prompt for VS 2017, i can execute cl. I don't know what is causing this error. Is it because bash cannot identify the c Compiler cl? do i have to set additional environment variables? I hope someone can help me to solve this problem. Or if someone has a precompiled NSS 3.35 with Certutil.exe, that would greatly help. Thank you very much, Rommel
已附加屏幕截图

所有回复 (2)

more options

Hi, I think you need to go back to github for info or to stackoverflow.com for help. Firefox Volunteer Support does not do compiling for what you are asking. You may want to try working with the Developer Edition as it has more things to work with and can be run in compatible mode at end of install with 57+ https://www.mozilla.org/en-US/developer/ (note it shares your bookmarks so back them up) Also the link to MDN link may be useful.

more options

NSS supports SQLite databases since NSS 3.12, but certutil defaults to DBM and you may have to use the sql: prefix.


  • Bug 1377940 - Change NSS default storage file format (currently DBM), when no prefix is given, to SQL [NSS 3.35]
  • Bug 447868 - Allow environment variable to override directory name passed to NSS_Init* [NSS 3.12.1]

(please do not comment in bug reports
https://bugzilla.mozilla.org/page.cgi?id=etiquette.html
)