在 Solaris 上构建 Node.JS:“使用 仅在 c99 编译环境中有效。”

2024-01-03

我正在尝试在 Solaris 上安装 Node.JS。这是开箱即用的 Solaris 9/10 x86(最新版本是 2010 年 9 月)并且仅使用默认软件包。

我遵循的方向在这里:https://github.com/joyent/node/wiki/Installation https://github.com/joyent/node/wiki/Installation。我正在使用在其主页上找到的最新稳定版本的 Node.JShttp://nodejs.org http://nodejs.org

这是我尝试过的...

-bash-3.00# export PATH=$PATH:/usr/sfw/bin:/usr/xpg4/bin
-bash-3.00# ./configure --prefix=/tmp/node
Checking for program g++ or c++          : /usr/sfw/bin/g++ 
Checking for program cpp                 : /usr/sfw/bin/cpp 
Checking for program ar                  : /usr/xpg4/bin/ar 
Checking for program ranlib              : not found 
Checking for g++                         : ok  
Checking for program gcc or cc           : /usr/sfw/bin/gcc 
Checking for program ar                  : /usr/xpg4/bin/ar 
Checking for program ranlib              : not found 
Checking for gcc                         : ok  
Checking for library dl                  : yes 
Checking for openssl                     : yes 
Checking for library util                : not found 
Checking for library rt                  : yes 
Checking for library socket              : yes 
Checking for library nsl                 : yes 
--- libeio ---
Checking for library pthread             : yes 
Checking for function pthread_create     : yes 
Checking for function pthread_atfork     : yes 
Checking for futimes(2)                  : no 
Checking for readahead(2)                : no 
Checking for fdatasync(2)                : no 
Checking for pread(2) and pwrite(2)      : yes 
Checking for sendfile(2)                 : no 
Checking for sync_file_range(2)          : no 
--- libev ---
Checking for header sys/inotify.h        : not found 
Checking for header sys/epoll.h          : not found 
Checking for header port.h               : yes 
Checking for function port_create        : yes 
Checking for header poll.h               : yes 
Checking for function poll               : yes 
Checking for header sys/event.h          : not found 
Checking for header sys/queue.h          : yes 
Checking for function kqueue             : not found 
Checking for header sys/select.h         : yes 
Checking for function select             : yes 
Checking for header sys/eventfd.h        : not found 
Checking for SYS_clock_gettime           : no 
Checking for library rt                  : yes 
Checking for function clock_gettime      : yes 
Checking for function nanosleep          : yes 
Checking for function ceil               : yes 
Checking for fdatasync(2) with c++       : no 
'configure' finished successfully (1.936s)
-bash-3.00# make
Waf: Entering directory `/tmp/node-v0.4.3/build'
DEST_OS: sunos
DEST_CPU: ia32
Parallel Jobs: 1
Product type: program
[ 3/75] cc: deps/c-ares/ares_strcasecmp.c -> build/default/deps/c-ares/ares_strcasecmp_1.o
/usr/sfw/bin/gcc -D_GNU_SOURCE -DHAVE_CONFIG_H=1 -threads -m32 -g -O3 -DHAVE_OPENSSL=1 -DEV_FORK_ENABLE=0 -DEV_EMBED_ENABLE=0 -DEV_MULTIPLICITY=0 -DX_STACKSIZE=65536 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DEV_MULTIPLICITY=0 -DHAVE_FDATASYNC=0 -DPLATFORM="sunos" -D__POSIX__=1 -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -DNDEBUG -Idefault/deps/c-ares -I../deps/c-ares -Idefault/deps/c-ares/sunos-ia32 -I../deps/c-ares/sunos-ia32 ../deps/c-ares/ares_strcasecmp.c -c -o default/deps/c-ares/ares_strcasecmp_1.o
In file included from ../deps/c-ares/setup_once.h:73,
                 from ../deps/c-ares/sunos-ia32/ares_setup.h:195,
                 from ../deps/c-ares/ares_strcasecmp.c:18:
/usr/include/stdbool.h:42:2: #error "Use of <stdbool.h> is valid only in a c99 compilation environment."
Waf: Leaving directory `/tmp/node-v0.4.3/build'
Build failed:  -> task failed (err #1): 
        {task: cc ares_strcasecmp.c -> ares_strcasecmp_1.o}
*** Error code 1
The following command caused the error:
python tools/waf-light --product-type=program build
make: Fatal error: Command failed for target `program'
-bash-3.00# 

我认为关键错误是

/usr/include/stdbool.h:42:2: #error "Use of <stdbool.h> is valid only in a c99 compilation environment."

我可以像这样重新创建

-bash-3.00# cd build
-bash-3.00# /usr/sfw/bin/gcc -D_GNU_SOURCE -DHAVE_CONFIG_H=1 -threads -m32 -g -O3 -DHAVE_OPENSSL=1 -DEV_FORK_ENABLE=0 -DEV_EMBED_ENABLE=0 -DEV_MULTIPLICITY=0 -DX_STACKSIZE=65536 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DEV_MULTIPLICITY=0 -DHAVE_FDATASYNC=0 -DPLATFORM="sunos" -D__POSIX__=1 -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -DNDEBUG -Idefault/deps/c-ares -I../deps/c-ares -Idefault/deps/c-ares/sunos-ia32 -I../deps/c-ares/sunos-ia32 ../deps/c-ares/ares_strcasecmp.c -c -o default/deps/c-ares/ares_strcasecmp_1.o
In file included from ../deps/c-ares/setup_once.h:73,
                 from ../deps/c-ares/sunos-ia32/ares_setup.h:195,
                 from ../deps/c-ares/ares_strcasecmp.c:18:
/usr/include/stdbool.h:42:2: #error "Use of <stdbool.h> is valid only in a c99 compilation environment."
-bash-3.00# cd ..
-bash-3.00# 

有任何想法吗?我是否需要指定不同的选项来使用 C99 或不使用 C99?

同样,这是 x86 上开箱即用的 Solaris 9/10。我没有做任何会改变任何编译器或默认安装的任何其他东西的事情。


尝试添加-std=c99 or -std=gnu99给你的CFLAGS在调用之前./configure,像这样:

CFLAGS=-std=c99 ./configure --prefix=/tmp/node

这个错误意味着 Node.JS 可能正在使用AC_PROG_CC in its configure.ac应该使用的脚本AC_PROG_CC_C99, see autoconf 手册上有关 C 编译器检测的页面 http://www.gnu.org/software/hello/manual/autoconf/C-Compiler.html。您应该向 Node.JS 开发人员报告此错误,并测试正确的解决方案是否适用于您的系统。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Solaris 上构建 Node.JS:“使用 仅在 c99 编译环境中有效。” 的相关文章

  • 属性对象什么时候创建?

    由于属性实际上只是附加到程序集的元数据 这是否意味着属性对象仅根据请求创建 例如当您调用 GetCustomAttributes 时 或者它们是在创建对象时创建的 或者 前两个的组合 在由于 CLR 的属性扫描而创建对象时创建 从 CLR
  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • 如何在 Unity 中从 RenderTexture 访问原始数据

    问题的简短版本 我正在尝试访问 Unity 中 RenderTexture 的内容 我一直在使用 Graphics Blit 使用自己的材质进行绘制 Graphics Blit null renderTexture material 我的材
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 不要在查询字符串 stringify 中对 url 进行编码

    有什么选择吗qs stringify那将not对网址进行编码 node gt var qs require querystring undefined gt qs stringify url http domain com url http
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 在 ASP.NET 中将事件冒泡为父级

    我已经说过 ASP NET 中的层次结构 page user control 1 user control 2 control 3 我想要做的是 当控件 3 它可以是任何类型的控件 我一般都想这样做 让用户用它做一些触发回发的事情时 它会向
  • 对于单主机 Node.js 生产应用程序来说,什么是好的会话存储? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co

随机推荐

  • 将相同的“*.dll”引用添加到同一解决方案中的多个项目

    我有一个 Visual Studio 2008 NET C CLI 解决方案 我的解决方案由许多子项目组成 我为每个项目定义了一个自定义构建目录 并将其称为 输出 我的解决方案 我的第一个项目 exe MySecondProject dll
  • 在防护测试中何时更喜欢使用“and”而不是“andalso”

    我很好奇为什么逗号是一个快捷方式and并不是andalso在警卫测试中 由于我称自己为 C 本地人 所以我看不到短路布尔求值的任何缺点 我使用编译了一些测试代码to core标记以查看实际生成的代码 使用逗号 我看到左边的值和右边的值都被评
  • JavaScript 中逗号运算符的作用是什么?

    如果我使用 1 09 1 returns 1 09 但如果我使用 1 09 1 returns 9 我知道 1 09 不是一个数字 最后一段代码中的逗号有什么作用 更多示例 if 0 9 alert ok alert if 9 0 aler
  • ReportLab 是否有可流动的 matplotlib?

    我想将 matplotlib 图表嵌入到 ReportLab 直接生成的 PDF 中 即不先保存为 PNG 然后将 PNG 嵌入到 PDF 中 我想我会得到更好质量的输出 有谁知道ReportLab是否有matplotlib flowabl
  • Netlogo:带有两个列表的“foreach”命令

    我有一个完整的有向图 每个链接都有自己的权重 我已经成功地选择了每只海龟的最大输出链接 但是 有时两只乌龟的最大输出链接彼此相反 导致两个彼此相反的链接被选择 如果发生这种情况 我希望具有较低值的链接消失 我用这个创建了两个列表 set m
  • 阻止 MassTransit 为消费者主机创建 RabbitMQ 交换

    是否可以将 MassTransit 配置为不为消费者主机创建 RabbitMQ 交换 我的 RabbitMQ 用户没有足够的权限在消费队列所在的主机上声明交换 因此 MassTransit 无法启动并出现以下错误 Unhandled Exc
  • 使用 postMessage 跨域 iframe 调整大小

    我已经在这里阅读了所有跨域 iframe 帖子 感谢你们所有人 和其他地方 postMessage 脚本位于跨域 iframe 调整大小 https stackoverflow com questions 5606920 cross dom
  • setResourceValue NSURLTagNamesKey 错误

    尝试使用 setResourceValue 将标签颜色设置为蓝色时出现错误 var error NSError let listofTags NSWorkspace sharedWorkspace fileLabels let theURL
  • “application/octet-stream”而不是 application/csv?

    我对 Python 还很陌生 我想确认数据集的类型 下面代码中的URL 确实是一个csv文件 但是 当通过标题检查时 我得到 application octet stream 而不是 application csv 我假设我在读取数据时以错
  • ActionResult AcceptVerbsAttribute 默认 HTTP 方法有哪些?

    我知道您可以通过添加 AcceptVerbsAttribute 来限制特定 ActionResult 方法响应哪些 HTTP 方法 例如 AcceptVerbs HttpVerbs Get public ActionResult Index
  • 从 UIPageViewController 中删除视图控制器

    奇怪的是没有直接的方法来做到这一点 考虑以下场景 您有一个包含 1 页的页面视图控制器 添加另一个页面 共 2 个 并滚动到该页面 我想要的是 当用户滚动回到第一页时 第二页现在被删除并释放 并且用户无法再滑回该页面 我尝试在转换完成后将视
  • 如何计算 luxon 中两个日期之间的持续时间?

    Luxon s 的文档Duration fromISO method https moment github io luxon docs class src duration js 7EDuration html static method
  • HTML - 按钮 - 如何使其可链接?

    我有一个像这样的按钮
  • Ubuntu Github ssh 密钥问题

    我遵循了本指南中给出的每个步骤 http help github com linux key setup http help github com linux key setup 当我读到最后时 我可以 ssh 到 电子邮件受保护 cdn
  • Node JS:从树 json 制作平面 json

    我正在编写一个 node js 脚本来组合目录中的所有 json 文件并将结果存储为新的 json 文件 我尝试在很大程度上完成这项工作 但它有一些缺陷 A json id addEmoticon1 description Message
  • C64 组件 - 6502/6510 - 依次显示一系列三个位图,然后进入字符模式

    我这里有一个很大的问题 我发现仅靠几本参考书 互联网和你的真实资料很难回答这个问题 我只想显示一个位图 等几秒钟 把它从记忆中抹去 显示另一个位图 再等一下 把那个从记忆中抹掉 显示最终位图 等最后一次吧 而且 你已经猜到了 把它从记忆中抹
  • Chrome 切换到 OSX 通知后,网络推送通知未显示

    由于 Chrome 切换到本机 OSX 通知 有时我尝试使用网络推送和我的 Service Worker 显示的通知不会出现 它们在 Chrome 的早期版本中一致出现 自从他们开始做这项工作以来 我应该改变什么吗 确保 请勿打扰 已关闭
  • 快速字符串替换

    在构建了一个可能非常大的字符串后 我将对其进行大量更改 将其中的单个字符 或字节 如果需要 更改为另一个字符 实际上 我的脚本正在构建一个填字游戏 因此字符串不会很长 但我的问题很笼统 我如何利用我不改变字符串 或任何更好的数据类型 长度的
  • 如何增加 UIButton 的点击区域?

    I use UIButton具有自动布局 当图像较小时 点击区域也较小 我可以想象几种方法来解决这个问题 增加图像尺寸 即在图像周围放置透明区域 这不好 因为当您定位图像时 您必须记住额外的透明边框 使用 CGRectInset 并增加大小
  • 在 Solaris 上构建 Node.JS:“使用 仅在 c99 编译环境中有效。”

    我正在尝试在 Solaris 上安装 Node JS 这是开箱即用的 Solaris 9 10 x86 最新版本是 2010 年 9 月 并且仅使用默认软件包 我遵循的方向在这里 https github com joyent node w