Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

build fails with external lief at version 1.0.0

未關閉
#66,238 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
3/5
預估耗時
1-2 天
新手友好度
55/100
Issue 類型
缺陷
描述清晰度
描述清楚
活躍度
活躍
技術堆疊
cpp, node.js
領域
build-system

研究方向

The error occurs in src/node_sea_bin.cc at lines 178 and 194, where a LIEF::MachO::Section constructor is called with two arguments. Check the LIEF library's API changes between versions; look for how to create a Section with name and data in LIEF 1.0.0. Start by examining the LIEF header files or documentation to find the correct constructor signature, then update the calls accordingly. Verify the fix by building Node.js with the shared-lief flag.

由索引模型根據 Issue 內容生成。

描述

Currently, attempting to build node 26.10.0 with lief 1.0.0 and the configure flag "--shared-lief" results in:

../src/node_sea_bin.cc:178:54: error: no matching function for call to ‘LIEF::MachO::Section::Section(const std::string&, const std::vector<unsigned char>&)’
  178 |       LIEF::MachO::Section section(section_name, data);
      |                                                      ^
In file included from /gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO.hpp:69,
                 from /gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/LIEF.hpp:30,
                 from ../src/node_sea_bin.cc:12:
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:356:3: note: candidate: ‘LIEF::MachO::Section::Section(const LIEF::MachO::Section&)’
  356 |   Section(const Section& copy);
      |   ^~~~~~~
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:356:3: note:   candidate expects 1 argument, 2 provided
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:353:3: note: candidate: ‘LIEF::MachO::Section::Section()’
  353 |   Section();
      |   ^~~~~~~
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:353:3: note:   candidate expects 0 arguments, 2 provided
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:161:3: note: candidate: ‘LIEF::MachO::Section::Section(LIEF::MachO::Section&&)’
  161 |   Section(Section&&);
      |   ^~~~~~~
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:161:3: note:   candidate expects 1 argument, 2 provided
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:159:3: note: candidate: ‘LIEF::MachO::Section::Section(const LIEF::MachO::details::section_64&)’
  159 |   Section(const details::section_64& sec);
      |   ^~~~~~~
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:159:3: note:   candidate expects 1 argument, 2 provided
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:158:3: note: candidate: ‘LIEF::MachO::Section::Section(const LIEF::MachO::details::section_32&)’
  158 |   Section(const details::section_32& sec);
      |   ^~~~~~~
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:158:3: note:   candidate expects 1 argument, 2 provided
../src/node_sea_bin.cc:194:54: error: no matching function for call to ‘LIEF::MachO::Section::Section(const std::string&, const std::vector<unsigned char>&)’
  194 |       LIEF::MachO::Section section(section_name, data);
      |                                                      ^
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:356:3: note: candidate: ‘LIEF::MachO::Section::Section(const LIEF::MachO::Section&)’
  356 |   Section(const Section& copy);
      |   ^~~~~~~
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:356:3: note:   candidate expects 1 argument, 2 provided
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:353:3: note: candidate: ‘LIEF::MachO::Section::Section()’
  353 |   Section();
      |   ^~~~~~~
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:353:3: note:   candidate expects 0 arguments, 2 provided
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:161:3: note: candidate: ‘LIEF::MachO::Section::Section(LIEF::MachO::Section&&)’
  161 |   Section(Section&&);
      |   ^~~~~~~
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:161:3: note:   candidate expects 1 argument, 2 provided
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:159:3: note: candidate: ‘LIEF::MachO::Section::Section(const LIEF::MachO::details::section_64&)’
  159 |   Section(const details::section_64& sec);
      |   ^~~~~~~
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:159:3: note:   candidate expects 1 argument, 2 provided
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:158:3: note: candidate: ‘LIEF::MachO::Section::Section(const LIEF::MachO::details::section_32&)’
  158 |   Section(const details::section_32& sec);
      |   ^~~~~~~
/gnu/store/i96k345l9bb7vabb9645wh9q6mqkxgh7-lief-1.0.0/include/LIEF/MachO/Section.hpp:158:3: note:   candidate expects 1 argument, 2 provided
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/process_wrap.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/signal_wrap.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/spawn_sync.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/stream_base.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/stream_pipe.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/stream_wrap.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/string_bytes.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/string_decoder.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/tcp_wrap.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/timers.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/timer_wrap.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/tracing/agent.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/tracing/trace_event_helper.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/tracing/traced_value.o
  CXX(target) /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/tty_wrap.o
make[1]: *** [node_base.target.mk:439: /tmp/guix-build-node-26.10.0.drv-0/node-v26.10.0/out/Release/obj.target/node_base/src/node_sea_bin.o] Error 1
make[1]: *** Waiting for unfinished jobs....
rm b28e06f7e674ef0f144c3ad95370a3c81f72fc026df121ee0dd4234f6acff89b.intermediate ffcd52f1767996a9dbb727f658cd560795e68d559a0d11df2b91666f8908c451.intermediate 7b7d1792cf4ba17e8ac3912d529efdf8d18988968a082367fb99f27af89cfac7.intermediate
make: *** [Makefile:145: node] Error 2
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("-j" "32" "--max-load=32") exit-status: 2 term-signal: #f stop-signal: #f> 
phase `build' failed after 33.7 seconds
command "make" "-j" "32" "--max-load=32" failed with status 2
build process 18 exited with status 256
builder for `/gnu/store/3vyn8lbdl0salanlfc0j38226jxz99qx-node-26.10.0.drv' failed with exit code 1

It'd be nice if it could be built using lief 1.0.0.

主要語言
JavaScript
星號
122k
分支
37.4k
平均合併
4 天 2 小時
30 天內合併 PR
277

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

nodejs/node 的其他 Issue

查看 nodejs/node 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。