SpiderMonkey本地编译:collect2:错误:ld返回1退出状态

问题描述 投票:0回答:1

我正在尝试编译此代码:

#include <cstdio>

#include "requirements/jsapi.h"
#include "requirements/js/CompilationAndEvaluation.h"
#include "requirements/js/SourceText.h"

#include "requirements/boilerplate.h"

static bool ExecuteCodePrintResult(JSContext* cx, const char* code) {
  JS::CompileOptions options(cx);
  options.setFileAndLine("noname", 1);

  JS::SourceText<mozilla::Utf8Unit> source;
  if (!source.init(cx, code, strlen(code), JS::SourceOwnership::Borrowed)) {
    return false;
  }

  JS::RootedValue rval(cx);
  if (!JS::Evaluate(cx, options, source, &rval)) return false;

  // There are many ways to display an arbitrary value as a result. In this
  // case, we know that the value is an ASCII string because of the expression
  // that we executed, so we can just print the string directly.
  printf("%s\n", JS_EncodeStringToASCII(cx, rval.toString()).get());
  return true;
}

static bool HelloExample(JSContext* cx) {
  JS::RootedObject global(cx, boilerplate::CreateGlobal(cx));
  if (!global) {
    return false;
  }

  JSAutoRealm ar(cx, global);

  // The 'js' delimiter is meaningless, but it's useful for marking C++ raw
  // strings semantically.
  return ExecuteCodePrintResult(cx, R"js(
    `hello world, it is ${new Date()}`
  )js");
}

int main(int argc, const char* argv[]) {
  if (!boilerplate::RunExample(HelloExample)) {
    return 1;
  }
  return 0;
}

从“requirements/”编译的文件与安装放入 /usr/local 的文件相同。我的目标是获得可执行文件,但我在命令行中得到以下内容:

In file included from /usr/include/time.h:29,
                 from /usr/include/pthread.h:23,
                 from /usr/include/x86_64-linux-gnu/c++/12/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/12/bits/gthr.h:148,
                 from /usr/include/c++/12/ext/atomicity.h:35,
                 from /usr/include/c++/12/bits/ios_base.h:39,
                 from /usr/include/c++/12/ios:42,
                 from /usr/include/c++/12/ostream:38,
                 from requirements/mozilla/Maybe.h:13,
                 from requirements/jsapi.h:14,
                 from test.cpp:3:
requirements/js/HeapAPI.h:263:47: warning: ‘offsetof’ within non-standard-layout type ‘js::gc::TenuredChunkBase’ is conditionally-supported [-Winvalid-offsetof]
  263 | const size_t ChunkMarkBitmapOffset = offsetof(TenuredChunkBase, markBits);
      |                                               ^
/usr/bin/ld: /tmp/ccCGKPu2.o: in function `ExecuteCodePrintResult(JSContext*, char const*)':
test.cpp:(.text+0xfe): undefined reference to `JS::CompileOptions::CompileOptions(JSContext*)'
/usr/bin/ld: test.cpp:(.text+0x1ce): undefined reference to `JS::Evaluate(JSContext*, JS::ReadOnlyCompileOptions const&, JS::SourceText<mozilla::Utf8Unit>&, JS::MutableHandle<JS::Value>)'
/usr/bin/ld: test.cpp:(.text+0x207): undefined reference to `JS_EncodeStringToASCII(JSContext*, JSString*)'
/usr/bin/ld: /tmp/ccCGKPu2.o: in function `HelloExample(JSContext*)':
test.cpp:(.text+0x2eb): undefined reference to `boilerplate::CreateGlobal(JSContext*)'
/usr/bin/ld: test.cpp:(.text+0x348): undefined reference to `JSAutoRealm::JSAutoRealm(JSContext*, JSObject*)'
/usr/bin/ld: test.cpp:(.text+0x36d): undefined reference to `JSAutoRealm::~JSAutoRealm()'
/usr/bin/ld: test.cpp:(.text+0x39f): undefined reference to `JSAutoRealm::~JSAutoRealm()'
/usr/bin/ld: /tmp/ccCGKPu2.o: in function `main':
test.cpp:(.text+0x3f1): undefined reference to `boilerplate::RunExample(bool (*)(JSContext*), bool)'
/usr/bin/ld: /tmp/ccCGKPu2.o: in function `bool JS::SourceText<mozilla::Utf8Unit>::initImpl<JSContext>(JSContext*, mozilla::Utf8Unit const*, unsigned long, JS::SourceOwnership)':
test.cpp:(.text._ZN2JS10SourceTextIN7mozilla8Utf8UnitEE8initImplI9JSContextEEbPT_PKS2_mNS_15SourceOwnershipE[_ZN2JS10SourceTextIN7mozilla8Utf8UnitEE8initImplI9JSContextEEbPT_PKS2_mNS_15SourceOwnershipE]+0xd1): undefined reference to `JS::detail::ReportSourceTooLong(JSContext*)'
/usr/bin/ld: /tmp/ccCGKPu2.o: in function `mozilla::Array<js::StackRootedBase*, 15ul>::operator[](unsigned long)':
test.cpp:(.text._ZN7mozilla5ArrayIPN2js15StackRootedBaseELm15EEixEm[_ZN7mozilla5ArrayIPN2js15StackRootedBaseELm15EEixEm]+0x31): undefined reference to `mozilla::detail::InvalidArrayIndex_CRASH(unsigned long, unsigned long)'
collect2: error: ld returned 1 exit status

我使用的命令是

g++ test.cpp -o test -Wall -DDEBUG=1
,它会给出一些警告(见上文),我应该得到一个名为 test 的可执行文件。

这个问题对我来说并不明显,而且大多数在线资源都没有告诉我任何关于我的情况的信息。我得到的代码直接来自“spidermonkey-embedding-examples”,除了我不想使用 /usr/local 中的库,由于各种愚蠢的原因,我必须在我的团队中工作。

根据要求,这是我正在使用的树(忽略spidermonkey-embedding-examples,因为它不会影响我正在处理的项目):

.
├── requirements
│   ├── BaseProfiler.h
│   ├── BaseProfilingCategory.h
│   ├── boilerplate.cpp
│   ├── boilerplate.h
│   ├── double-conversion
│   │   ├── double-conversion.h
│   │   ├── double-to-string.h
│   │   ├── string-to-double.h
│   │   └── utils.h
│   ├── encoding_rs_mem.h
│   ├── fdlibm.h
│   ├── function2
│   │   └── function2.hpp
│   ├── js
│   │   ├── AllocationLogging.h
│   │   ├── AllocationRecording.h
│   │   ├── AllocPolicy.h
│   │   ├── ArrayBuffer.h
│   │   ├── ArrayBufferMaybeShared.h
│   │   ├── Array.h
│   │   ├── BigInt.h
│   │   ├── BuildId.h
│   │   ├── CallAndConstruct.h
│   │   ├── CallArgs.h
│   │   ├── CallNonGenericMethod.h
│   │   ├── CharacterEncoding.h
│   │   ├── Class.h
│   │   ├── ComparisonOperators.h
│   │   ├── CompilationAndEvaluation.h
│   │   ├── CompileOptions.h
│   │   ├── Context.h
│   │   ├── ContextOptions.h
│   │   ├── Conversions.h
│   │   ├── Date.h
│   │   ├── Debug.h
│   │   ├── Equality.h
│   │   ├── ErrorInterceptor.h
│   │   ├── ErrorReport.h
│   │   ├── Exception.h
│   │   ├── experimental
│   │   │   ├── CodeCoverage.h
│   │   │   ├── CompileScript.h
│   │   │   ├── CTypes.h
│   │   │   ├── Intl.h
│   │   │   ├── JitInfo.h
│   │   │   ├── JSStencil.h
│   │   │   ├── PCCountProfiling.h
│   │   │   ├── SourceHook.h
│   │   │   └── TypedData.h
│   │   ├── ForOfIterator.h
│   │   ├── friend
│   │   │   ├── DOMProxy.h
│   │   │   ├── DumpFunctions.h
│   │   │   ├── ErrorMessages.h
│   │   │   ├── ErrorNumbers.msg
│   │   │   ├── JSMEnvironment.h
│   │   │   ├── PerformanceHint.h
│   │   │   ├── StackLimits.h
│   │   │   ├── UsageStatistics.h
│   │   │   ├── WindowProxy.h
│   │   │   └── XrayJitInfo.h
│   │   ├── GCAnnotations.h
│   │   ├── GCAPI.h
│   │   ├── GCHashTable.h
│   │   ├── GCPolicyAPI.h
│   │   ├── GCTypeMacros.h
│   │   ├── GCVariant.h
│   │   ├── GCVector.h
│   │   ├── GlobalObject.h
│   │   ├── HashTable.h
│   │   ├── HeapAPI.h
│   │   ├── HelperThreadAPI.h
│   │   ├── Id.h
│   │   ├── Initialization.h
│   │   ├── Interrupt.h
│   │   ├── JitCodeAPI.h
│   │   ├── JSON.h
│   │   ├── LocaleSensitive.h
│   │   ├── MapAndSet.h
│   │   ├── MemoryCallbacks.h
│   │   ├── MemoryFunctions.h
│   │   ├── MemoryMetrics.h
│   │   ├── Modules.h
│   │   ├── Object.h
│   │   ├── OffThreadScriptCompilation.h
│   │   ├── Principals.h
│   │   ├── Printer.h
│   │   ├── Printf.h
│   │   ├── ProfilingCategory.h
│   │   ├── ProfilingCategoryList.h
│   │   ├── ProfilingFrameIterator.h
│   │   ├── ProfilingStack.h
│   │   ├── Promise.h
│   │   ├── PropertyAndElement.h
│   │   ├── PropertyDescriptor.h
│   │   ├── PropertySpec.h
│   │   ├── ProtoKey.h
│   │   ├── Proxy.h
│   │   ├── Realm.h
│   │   ├── RealmIterators.h
│   │   ├── RealmOptions.h
│   │   ├── RefCounted.h
│   │   ├── RegExpFlags.h
│   │   ├── RegExp.h
│   │   ├── Result.h
│   │   ├── RootingAPI.h
│   │   ├── SavedFrameAPI.h
│   │   ├── ScalarType.h
│   │   ├── ScriptPrivate.h
│   │   ├── shadow
│   │   │   ├── Function.h
│   │   │   ├── Object.h
│   │   │   ├── Realm.h
│   │   │   ├── Shape.h
│   │   │   ├── String.h
│   │   │   ├── Symbol.h
│   │   │   └── Zone.h
│   │   ├── ShadowRealmCallbacks.h
│   │   ├── SharedArrayBuffer.h
│   │   ├── SliceBudget.h
│   │   ├── SourceText.h
│   │   ├── StableStringChars.h
│   │   ├── Stack.h
│   │   ├── StreamConsumer.h
│   │   ├── String.h
│   │   ├── StructuredClone.h
│   │   ├── SweepingAPI.h
│   │   ├── Symbol.h
│   │   ├── TelemetryTimers.h
│   │   ├── TraceKind.h
│   │   ├── TracingAPI.h
│   │   ├── Transcoding.h
│   │   ├── TypeDecls.h
│   │   ├── UbiNodeBreadthFirst.h
│   │   ├── UbiNodeCensus.h
│   │   ├── UbiNodeDominatorTree.h
│   │   ├── UbiNode.h
│   │   ├── UbiNodePostOrder.h
│   │   ├── UbiNodeShortestPaths.h
│   │   ├── UbiNodeUtils.h
│   │   ├── UniquePtr.h
│   │   ├── Utility.h
│   │   ├── ValueArray.h
│   │   ├── Value.h
│   │   ├── Vector.h
│   │   ├── WaitCallbacks.h
│   │   ├── Warnings.h
│   │   ├── WasmFeatures.h
│   │   ├── WasmModule.h
│   │   ├── WeakMap.h
│   │   ├── WeakMapPtr.h
│   │   ├── WrapperCallbacks.h
│   │   ├── Wrapper.h
│   │   └── Zone.h
│   ├── jsapi.h
│   ├── js-config.h
│   ├── jsfriendapi.h
│   ├── jspubtd.h
│   ├── jstypes.h
│   ├── malloc_decls.h
│   ├── mozilla
│   │   ├── Algorithm.h
│   │   ├── Alignment.h
│   │   ├── AllocPolicy.h
│   │   ├── AlreadyAddRefed.h
│   │   ├── Array.h
│   │   ├── ArrayUtils.h
│   │   ├── Assertions.h
│   │   ├── AtomicBitfields.h
│   │   ├── Atomics.h
│   │   ├── Attributes.h
│   │   ├── AutoProfilerLabel.h
│   │   ├── AwakeTimeStamp.h
│   │   ├── BaseAndGeckoProfilerDetail.h
│   │   ├── BaseProfileJSONWriter.h
│   │   ├── BaseProfilerCounts.h
│   │   ├── BaseProfilerDetail.h
│   │   ├── BaseProfilerLabels.h
│   │   ├── BaseProfilerMarkersDetail.h
│   │   ├── BaseProfilerMarkers.h
│   │   ├── BaseProfilerMarkersPrerequisites.h
│   │   ├── BaseProfilerMarkerTypes.h
│   │   ├── BaseProfilerRAIIMacro.h
│   │   ├── BaseProfilerState.h
│   │   ├── BaseProfilerUtils.h
│   │   ├── BinarySearch.h
│   │   ├── BitSet.h
│   │   ├── BlocksRingBuffer.h
│   │   ├── BloomFilter.h
│   │   ├── Buffer.h
│   │   ├── BufferList.h
│   │   ├── Casting.h
│   │   ├── ChaosMode.h
│   │   ├── Char16.h
│   │   ├── CheckedInt.h
│   │   ├── CompactPair.h
│   │   ├── Compiler.h
│   │   ├── Compression.h
│   │   ├── cxxalloc.h
│   │   ├── DbgMacro.h
│   │   ├── DebugOnly.h
│   │   ├── Decimal.h
│   │   ├── DefineEnum.h
│   │   ├── DoubleConversion.h
│   │   ├── DoublyLinkedList.h
│   │   ├── EndianUtils.h
│   │   ├── EnumeratedArray.h
│   │   ├── EnumeratedRange.h
│   │   ├── EnumSet.h
│   │   ├── EnumTypeTraits.h
│   │   ├── FailureLatch.h
│   │   ├── fallible.h
│   │   ├── FastBernoulliTrial.h
│   │   ├── FloatingPoint.h
│   │   ├── FStream.h
│   │   ├── FunctionRef.h
│   │   ├── FunctionTypeTraits.h
│   │   ├── Fuzzing.h
│   │   ├── glue
│   │   │   ├── Debug.h
│   │   │   └── WinUtils.h
│   │   ├── HashFunctions.h
│   │   ├── HashTable.h
│   │   ├── HelperMacros.h
│   │   ├── InitializedOnce.h
│   │   ├── IntegerPrintfMacros.h
│   │   ├── IntegerRange.h
│   │   ├── IntegerTypeTraits.h
│   │   ├── intl
│   │   │   ├── BidiClass.h
│   │   │   ├── BidiEmbeddingLevel.h
│   │   │   ├── Bidi.h
│   │   │   ├── Calendar.h
│   │   │   ├── Collator.h
│   │   │   ├── Currency.h
│   │   │   ├── DateIntervalFormat.h
│   │   │   ├── DateTimeFormat.h
│   │   │   ├── DateTimePart.h
│   │   │   ├── DateTimePatternGenerator.h
│   │   │   ├── DisplayNames.h
│   │   │   ├── FormatBuffer.h
│   │   │   ├── GeneralCategory.h
│   │   │   ├── ICU4CGlue.h
│   │   │   ├── ICU4CLibrary.h
│   │   │   ├── ICUError.h
│   │   │   ├── IDNA.h
│   │   │   ├── ListFormat.h
│   │   │   ├── LocaleCanonicalizer.h
│   │   │   ├── Locale.h
│   │   │   ├── MeasureUnitGenerated.h
│   │   │   ├── MeasureUnit.h
│   │   │   ├── NumberFormat.h
│   │   │   ├── NumberingSystem.h
│   │   │   ├── NumberParser.h
│   │   │   ├── NumberPart.h
│   │   │   ├── NumberRangeFormat.h
│   │   │   ├── PluralRules.h
│   │   │   ├── RelativeTimeFormat.h
│   │   │   ├── String.h
│   │   │   ├── TimeZone.h
│   │   │   ├── UnicodeProperties.h
│   │   │   └── UnicodeScriptCodes.h
│   │   ├── JSONWriter.h
│   │   ├── JsRust.h
│   │   ├── Latin1.h
│   │   ├── leb128iterator.h
│   │   ├── Likely.h
│   │   ├── LinkedList.h
│   │   ├── MacroArgs.h
│   │   ├── MacroForEach.h
│   │   ├── MathAlgorithms.h
│   │   ├── Maybe.h
│   │   ├── MaybeOneOf.h
│   │   ├── MaybeStorageBase.h
│   │   ├── MemoryChecking.h
│   │   ├── MemoryReporting.h
│   │   ├── MmapFaultHandler.h
│   │   ├── ModuloBuffer.h
│   │   ├── MoveOnlyFunction.h
│   │   ├── mozalloc_abort.h
│   │   ├── mozalloc.h
│   │   ├── mozalloc_oom.h
│   │   ├── MruCache.h
│   │   ├── NonDereferenceable.h
│   │   ├── NotNull.h
│   │   ├── Opaque.h
│   │   ├── OperatorNewExtensions.h
│   │   ├── PairHash.h
│   │   ├── Path.h
│   │   ├── PlatformConditionVariable.h
│   │   ├── PlatformMutex.h
│   │   ├── PlatformRWLock.h
│   │   ├── PodOperations.h
│   │   ├── Poison.h
│   │   ├── PowerOfTwo.h
│   │   ├── Printf.h
│   │   ├── ProfileBufferChunk.h
│   │   ├── ProfileBufferChunkManager.h
│   │   ├── ProfileBufferChunkManagerSingle.h
│   │   ├── ProfileBufferChunkManagerWithLocalLimit.h
│   │   ├── ProfileBufferControlledChunkManager.h
│   │   ├── ProfileBufferEntryKinds.h
│   │   ├── ProfileBufferEntrySerialization.h
│   │   ├── ProfileBufferIndex.h
│   │   ├── ProfileChunkedBufferDetail.h
│   │   ├── ProfileChunkedBuffer.h
│   │   ├── ProgressLogger.h
│   │   ├── ProportionValue.h
│   │   ├── RandomNum.h
│   │   ├── RangedArray.h
│   │   ├── RangedPtr.h
│   │   ├── Range.h
│   │   ├── ReentrancyGuard.h
│   │   ├── RefCounted.h
│   │   ├── RefCountType.h
│   │   ├── RefPtr.h
│   │   ├── ResultExtensions.h
│   │   ├── Result.h
│   │   ├── ResultVariant.h
│   │   ├── ReverseIterator.h
│   │   ├── RollingMean.h
│   │   ├── Saturate.h
│   │   ├── Scoped.h
│   │   ├── ScopeExit.h
│   │   ├── SegmentedVector.h
│   │   ├── SHA1.h
│   │   ├── SharedLibrary.h
│   │   ├── SIMD.h
│   │   ├── SmallPointerArray.h
│   │   ├── Span.h
│   │   ├── SplayTree.h
│   │   ├── Sprintf.h
│   │   ├── SPSCQueue.h
│   │   ├── SSE.h
│   │   ├── StackWalk.h
│   │   ├── StaticAnalysisFunctions.h
│   │   ├── TaggedAnonymousMemory.h
│   │   ├── Tainting.h
│   │   ├── TemplateLib.h
│   │   ├── TextUtils.h
│   │   ├── ThreadLocal.h
│   │   ├── ThreadSafety.h
│   │   ├── ThreadSafeWeakPtr.h
│   │   ├── TimeStamp.h
│   │   ├── ToString.h
│   │   ├── TypedEnumBits.h
│   │   ├── Types.h
│   │   ├── UniquePtrExtensions.h
│   │   ├── UniquePtr.h
│   │   ├── Unused.h
│   │   ├── Uptime.h
│   │   ├── Utf8.h
│   │   ├── Variant.h
│   │   ├── Vector.h
│   │   ├── WeakPtr.h
│   │   ├── WrappingOperations.h
│   │   └── XorShift128PlusRNG.h
│   ├── mozjemalloc_types.h
│   ├── mozmemory.h
│   ├── mozmemory_utils.h
│   ├── mozmemory_wrap.h
│   └── unicode
│       ├── alphaindex.h
│       ├── appendable.h
│       ├── basictz.h
│       ├── brkiter.h
│       ├── bytestream.h
│       ├── bytestriebuilder.h
│       ├── bytestrie.h
│       ├── calendar.h
│       ├── caniter.h
│       ├── casemap.h
│       ├── char16ptr.h
│       ├── chariter.h
│       ├── choicfmt.h
│       ├── coleitr.h
│       ├── coll.h
│       ├── compactdecimalformat.h
│       ├── curramt.h
│       ├── currpinf.h
│       ├── currunit.h
│       ├── datefmt.h
│       ├── dbbi.h
│       ├── dcfmtsym.h
│       ├── decimfmt.h
│       ├── displayoptions.h
│       ├── docmain.h
│       ├── dtfmtsym.h
│       ├── dtintrv.h
│       ├── dtitvfmt.h
│       ├── dtitvinf.h
│       ├── dtptngen.h
│       ├── dtrule.h
│       ├── edits.h
│       ├── enumset.h
│       ├── errorcode.h
│       ├── fieldpos.h
│       ├── filteredbrk.h
│       ├── fmtable.h
│       ├── format.h
│       ├── formattednumber.h
│       ├── formattedvalue.h
│       ├── fpositer.h
│       ├── gender.h
│       ├── gregocal.h
│       ├── icudataver.h
│       ├── icuplug.h
│       ├── idna.h
│       ├── listformatter.h
│       ├── localebuilder.h
│       ├── localematcher.h
│       ├── localpointer.h
│       ├── locdspnm.h
│       ├── locid.h
│       ├── measfmt.h
│       ├── measunit.h
│       ├── measure.h
│       ├── messagepattern.h
│       ├── msgfmt.h
│       ├── normalizer2.h
│       ├── normlzr.h
│       ├── nounit.h
│       ├── numberformatter.h
│       ├── numberrangeformatter.h
│       ├── numfmt.h
│       ├── numsys.h
│       ├── parseerr.h
│       ├── parsepos.h
│       ├── platform.h
│       ├── plurfmt.h
│       ├── plurrule.h
│       ├── ptypes.h
│       ├── putil.h
│       ├── rbbi.h
│       ├── rbnf.h
│       ├── rbtz.h
│       ├── regex.h
│       ├── region.h
│       ├── reldatefmt.h
│       ├── rep.h
│       ├── resbund.h
│       ├── schriter.h
│       ├── scientificnumberformatter.h
│       ├── search.h
│       ├── selfmt.h
│       ├── simpleformatter.h
│       ├── simplenumberformatter.h
│       ├── simpletz.h
│       ├── smpdtfmt.h
│       ├── sortkey.h
│       ├── std_string.h
│       ├── strenum.h
│       ├── stringoptions.h
│       ├── stringpiece.h
│       ├── stringtriebuilder.h
│       ├── stsearch.h
│       ├── symtable.h
│       ├── tblcoll.h
│       ├── timezone.h
│       ├── tmunit.h
│       ├── tmutamt.h
│       ├── tmutfmt.h
│       ├── translit.h
│       ├── tzfmt.h
│       ├── tznames.h
│       ├── tzrule.h
│       ├── tztrans.h
│       ├── ubidi.h
│       ├── ubiditransform.h
│       ├── ubrk.h
│       ├── ucal.h
│       ├── ucasemap.h
│       ├── ucat.h
│       ├── uchar.h
│       ├── ucharstriebuilder.h
│       ├── ucharstrie.h
│       ├── uchriter.h
│       ├── uclean.h
│       ├── ucnv_cb.h
│       ├── ucnv_err.h
│       ├── ucnv.h
│       ├── ucnvsel.h
│       ├── ucoleitr.h
│       ├── ucol.h
│       ├── uconfig.h
│       ├── ucpmap.h
│       ├── ucptrie.h
│       ├── ucsdet.h
│       ├── ucurr.h
│       ├── udata.h
│       ├── udateintervalformat.h
│       ├── udat.h
│       ├── udatpg.h
│       ├── udisplaycontext.h
│       ├── udisplayoptions.h
│       ├── uenum.h
│       ├── ufieldpositer.h
│       ├── uformattable.h
│       ├── uformattednumber.h
│       ├── uformattedvalue.h
│       ├── ugender.h
│       ├── uidna.h
│       ├── uiter.h
│       ├── uldnames.h
│       ├── ulistformatter.h
│       ├── ulocdata.h
│       ├── uloc.h
│       ├── umachine.h
│       ├── umisc.h
│       ├── umsg.h
│       ├── umutablecptrie.h
│       ├── unifilt.h
│       ├── unifunct.h
│       ├── unimatch.h
│       ├── unirepl.h
│       ├── uniset.h
│       ├── unistr.h
│       ├── unorm2.h
│       ├── unorm.h
│       ├── unumberformatter.h
│       ├── unumberoptions.h
│       ├── unumberrangeformatter.h
│       ├── unum.h
│       ├── unumsys.h
│       ├── uobject.h
│       ├── upluralrules.h
│       ├── uregex.h
│       ├── uregion.h
│       ├── ureldatefmt.h
│       ├── urename.h
│       ├── urep.h
│       ├── ures.h
│       ├── uscript.h
│       ├── usearch.h
│       ├── uset.h
│       ├── usetiter.h
│       ├── ushape.h
│       ├── usimplenumberformatter.h
│       ├── uspoof.h
│       ├── usprep.h
│       ├── ustring.h
│       ├── ustringtrie.h
│       ├── utext.h
│       ├── utf16.h
│       ├── utf32.h
│       ├── utf8.h
│       ├── utf.h
│       ├── utf_old.h
│       ├── utmscale.h
│       ├── utrace.h
│       ├── utrans.h
│       ├── utypes.h
│       ├── uvernum.h
│       ├── uversion.h
│       └── vtzone.h
├── spidermonkey-embedding-examples
│   ├── _build
│   │   ├── build.ninja
│   │   ├── compile_commands.json
│   │   ├── cookbook
│   │   ├── cookbook.p
│   │   │   ├── examples_boilerplate.cpp.o
│   │   │   └── examples_cookbook.cpp.o
│   │   ├── hello
│   │   ├── hello.p
│   │   │   ├── examples_boilerplate.cpp.o
│   │   │   └── examples_hello.cpp.o
│   │   ├── meson-info
│   │   │   ├── intro-benchmarks.json
│   │   │   ├── intro-buildoptions.json
│   │   │   ├── intro-buildsystem_files.json
│   │   │   ├── intro-dependencies.json
│   │   │   ├── intro-installed.json
│   │   │   ├── intro-install_plan.json
│   │   │   ├── intro-projectinfo.json
│   │   │   ├── intro-targets.json
│   │   │   ├── intro-tests.json
│   │   │   └── meson-info.json
│   │   ├── meson-logs
│   │   │   └── meson-log.txt
│   │   ├── meson-private
│   │   │   ├── build.dat
│   │   │   ├── cmd_line.txt
│   │   │   ├── coredata.dat
│   │   │   ├── install.dat
│   │   │   ├── meson_benchmark_setup.dat
│   │   │   ├── meson.lock
│   │   │   ├── meson_test_setup.dat
│   │   │   ├── sanitycheckcpp.cc
│   │   │   └── sanitycheckcpp.exe
│   │   ├── modules
│   │   ├── modules.p
│   │   │   ├── examples_boilerplate.cpp.o
│   │   │   └── examples_modules.cpp.o
│   │   ├── repl
│   │   ├── repl.p
│   │   │   ├── examples_boilerplate.cpp.o
│   │   │   └── examples_repl.cpp.o
│   │   ├── resolve
│   │   ├── resolve.p
│   │   │   ├── examples_boilerplate.cpp.o
│   │   │   └── examples_resolve.cpp.o
│   │   ├── tracing
│   │   ├── tracing.p
│   │   │   ├── examples_boilerplate.cpp.o
│   │   │   └── examples_tracing.cpp.o
│   │   ├── worker
│   │   └── worker.p
│   │       ├── examples_boilerplate.cpp.o
│   │       └── examples_worker.cpp.o
│   ├── CODE_OF_CONDUCT.md
│   ├── docs
│   │   ├── Building SpiderMonkey.md
│   │   ├── Bytecodes.md
│   │   ├── Custom Objects.md
│   │   ├── Debugging Tips.md
│   │   ├── Exceptions.md
│   │   ├── Garbage Collection.md
│   │   ├── GC Rooting Guide.md
│   │   ├── JSAPI Introduction.md
│   │   ├── Migration Guide.md
│   │   ├── Miscellaneous.md
│   │   ├── README.md
│   │   └── Value.md
│   ├── examples
│   │   ├── boilerplate.cpp
│   │   ├── boilerplate.h
│   │   ├── cookbook.cpp
│   │   ├── hello.cpp
│   │   ├── modules.cpp
│   │   ├── README.md
│   │   ├── repl.cpp
│   │   ├── resolve.cpp
│   │   ├── tracing.cpp
│   │   ├── wasm.cpp
│   │   └── worker.cpp
│   ├── LICENSE
│   ├── meson.build
│   ├── README.md
│   └── tools
│       ├── apply-format
│       ├── generic_lib.sh
│       ├── get_sm.sh
│       ├── git-pre-commit-format
│       ├── jsopcode.py
│       └── make_opcode_doc.py
└── test.cpp
c++ spidermonkey
1个回答
0
投票

您可能应该使用的确切命令是:

g++ -Irequirements/ test.cpp -o test -Wall -DDEBUG=1

如果继续出现错误,请告诉我错误日志,我会尽力提供进一步帮助。

© www.soinside.com 2019 - 2024. All rights reserved.