我正在尝试编译此代码:
#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
您可能应该使用的确切命令是:
g++ -Irequirements/ test.cpp -o test -Wall -DDEBUG=1
如果继续出现错误,请告诉我错误日志,我会尽力提供进一步帮助。