Linker cannot find malloc and free on OS X
bvoq via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Jun 5 04:48:29 PDT 2017
On Monday, 5 June 2017 at 10:34:12 UTC, Jacob Carlborg wrote:
> On 2017-06-05 01:14, bvoq wrote:
>
>> The flag -L-lc seems to have been passed to the library.
>> This is the full error message after running it with dub test
>> --verbose
>
> You need to continue to invoke the sub commands, that is, DMD,
> Clang and the linker with the verbose flag (-v) added. There's
> no point in looking for "-lc" since the C standard library on
> macOS is placed in /usr/lib/libSystem.B.dylib.
So I ran: dmd -unittest -main -v -L-lgmp -L-lc -g gmp/*
The error seems to stem from: cc dbgio.o -o dbgio -g -m64
-Xlinker -no_compact_unwind -lgmp -lc
-L/usr/local/Cellar/dmd/2.074.0/lib -lgmp -lgmp -lgmp -lgmp -lc
-lphobos2 -lpthread -lm
Full invocation of command with verbose flag: cc dbgio.o -o dbgio
-g -m64 -Xlinker -no_compact_unwind -lgmp -lc
-L/usr/local/Cellar/dmd/2.074.0/lib -lgmp -lgmp -lgmp -lgmp -lc
-lphobos2 -lpthread -lm -v
gmp -lc -L/usr/local/Cellar/dmd/2.074.0/lib -lgmp -lgmp -lgmp
-lgmp -lc -lphobos2 -lpthread -lm -v
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -macosx_version_min 10.12.0 -o dbgio -L/usr/local/Cellar/dmd/2.074.0/lib dbgio.o -no_compact_unwind -lgmp -lc -lgmp -lgmp -lgmp -lgmp -lc -lphobos2 -lpthread -lm -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.1.0/lib/darwin/libclang_rt.osx.a
Undefined symbols for architecture x86_64:
"free", referenced from:
_D3gmp1z3MpZ6__ctorMFNaNbNcNiNexAyakZS3gmp1z3MpZ in dbgio.o
_D3gmp1z3MpZ10fromStringMFNaNbNcNiNjNexAyakZS3gmp1z3MpZ in
dbgio.o
(maybe you meant:
_D2rt4util9container5treap33__T5TreapTS2gc11gcinterface4RootZ5Treap8freeNodeFNbNiPS2rt4util9container5treap33__T5TreapTS2gc11gcinterface4RootZ5Treap4NodeZv, _D2gc4impl12conservative2gc3Gcx8log_freeMFNbPvZv , _D2gc4impl12conservative2gc4Pool12freePageBitsMFNbmKxG4mZv , _D2gc4impl12conservative2gc8freeTimel , _D2rt5minfo11ModuleGroup4freeMFZv , _D2gc4impl6manual2gc8ManualGC4freeMFNbPvZv , _D2gc4impl12conservative2gc14ConservativeGC10freeNoSyncMFNbPvZv , _D2gc4impl12conservative2gc14ConservativeGC163__T9runLockedS63_D2gc4impl12conservative2gc14ConservativeGC10freeNoSyncMFNbPvZvS37_D2gc4impl12conservative2gc8freeTimelS37_D2gc4impl12conservative2gc8numFreeslTPvZ9runLockedMFNbKPvZv , _D2rt4util9container5treap34__T5TreapTS2gc11gcinterface5RangeZ5Treap8freeNodeFNbNiPS2rt4util9container5treap34__T5TreapTS2gc11gcinterface5RangeZ5Treap4NodeZv , _D2gc4impl12conservative2gc15LargeObjectPool9freePagesMFNbmmZv , _D2rt7dwarfeh15ExceptionHeader4freeFPS2rt7dwarfeh15ExceptionHeaderZv , _D2gc4impl12conservative2gc14ConservativeGC4freeMFNbPvZv , _D4core6memory2GC4freeFNaNbPvZv , _gc_free )
"malloc", referenced from:
_D3gmp1z3MpZ19_allocStringzCopyOfMFNaNbNiNexAyaZPa in
dbgio.o
(maybe you meant:
_D2gc4impl12conservative2gc3Gcx10log_mallocMFNbPvmZv,
_D2gc4impl12conservative2gc10mallocTimel ,
_D2gc4impl6manual2gc8ManualGC6mallocMFNbmkxC8TypeInfoZPv ,
_D2gc4impl12conservative2gc14ConservativeGC207__T9runLockedS83_D2gc4impl12conservative2gc14ConservativeGC13reallocNoSyncMFNbPvmKkKmxC8TypeInfoZPvS40_D2gc4impl12conservative2gc10mallocTimelS40_D2gc4impl12conservative2gc10numMallocslTPvTmTkTmTxC8TypeInfoZ9runLockedMFNbKPvKmKkKmKxC8TypeInfoZPv , _D2gc4impl12conservative2gc14ConservativeGC6mallocMFNbmkxC8TypeInfoZPv , _D2gc4impl12conservative2gc14ConservativeGC12mallocNoSyncMFNbmkKmxC8TypeInfoZPv , _D4core6memory2GC6mallocFNaNbmkxC8TypeInfoZPv , _gc_malloc , _D2rt4util9container6common7xmallocFNbNimZPv , _D2gc4impl12conservative2gc14ConservativeGC200__T9runLockedS79_D2gc4impl12conservative2gc14ConservativeGC12mallocNoSyncMFNbmkKmxC8TypeInfoZPvS40_D2gc4impl12conservative2gc10mallocTimelS40_D2gc4impl12conservative2gc10numMallocslTmTkTmTxC8TypeInfoZ9runLockedMFNbKmKkKmKxC8TypeInfoZPv )
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to
see invocation)
--------------------------------------
From there the command which yielded the error is:
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -macosx_version_min 10.12.0 -o dbgio -L/usr/local/Cellar/dmd/2.074.0/lib dbgio.o -no_compact_unwind -lgmp -lc -lgmp -lgmp -lgmp -lgmp -lc -lphobos2 -lpthread -lm -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.1.0/lib/darwin/libclang_rt.osx.a -v
The output of this command:
@(#)PROGRAM:ld PROJECT:ld64-278.4
configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64
x86_64h armv6m armv7k armv7m armv7em (tvOS)
Library search paths:
/usr/local/Cellar/dmd/2.074.0/lib
/usr/lib
/usr/local/lib
Framework search paths:
/Library/Frameworks/
/System/Library/Frameworks/
Undefined symbols for architecture x86_64:
"free", referenced from:
_D3gmp1z3MpZ6__ctorMFNaNbNcNiNexAyakZS3gmp1z3MpZ in dbgio.o
_D3gmp1z3MpZ10fromStringMFNaNbNcNiNjNexAyakZS3gmp1z3MpZ in
dbgio.o
(maybe you meant:
_D2rt4util9container5treap33__T5TreapTS2gc11gcinterface4RootZ5Treap8freeNodeFNbNiPS2rt4util9container5treap33__T5TreapTS2gc11gcinterface4RootZ5Treap4NodeZv, _D2gc4impl12conservative2gc3Gcx8log_freeMFNbPvZv , _D2gc4impl12conservative2gc4Pool12freePageBitsMFNbmKxG4mZv , _D2gc4impl12conservative2gc8freeTimel , _D2rt5minfo11ModuleGroup4freeMFZv , _D2gc4impl6manual2gc8ManualGC4freeMFNbPvZv , _D2gc4impl12conservative2gc14ConservativeGC10freeNoSyncMFNbPvZv , _D2gc4impl12conservative2gc14ConservativeGC163__T9runLockedS63_D2gc4impl12conservative2gc14ConservativeGC10freeNoSyncMFNbPvZvS37_D2gc4impl12conservative2gc8freeTimelS37_D2gc4impl12conservative2gc8numFreeslTPvZ9runLockedMFNbKPvZv , _D2rt4util9container5treap34__T5TreapTS2gc11gcinterface5RangeZ5Treap8freeNodeFNbNiPS2rt4util9container5treap34__T5TreapTS2gc11gcinterface5RangeZ5Treap4NodeZv , _D2gc4impl12conservative2gc15LargeObjectPool9freePagesMFNbmmZv , _D2rt7dwarfeh15ExceptionHeader4freeFPS2rt7dwarfeh15ExceptionHeaderZv , _D2gc4impl12conservative2gc14ConservativeGC4freeMFNbPvZv , _D4core6memory2GC4freeFNaNbPvZv , _gc_free )
"malloc", referenced from:
_D3gmp1z3MpZ19_allocStringzCopyOfMFNaNbNiNexAyaZPa in
dbgio.o
(maybe you meant:
_D2gc4impl12conservative2gc3Gcx10log_mallocMFNbPvmZv,
_D2gc4impl12conservative2gc10mallocTimel ,
_D2gc4impl6manual2gc8ManualGC6mallocMFNbmkxC8TypeInfoZPv ,
_D2gc4impl12conservative2gc14ConservativeGC207__T9runLockedS83_D2gc4impl12conservative2gc14ConservativeGC13reallocNoSyncMFNbPvmKkKmxC8TypeInfoZPvS40_D2gc4impl12conservative2gc10mallocTimelS40_D2gc4impl12conservative2gc10numMallocslTPvTmTkTmTxC8TypeInfoZ9runLockedMFNbKPvKmKkKmKxC8TypeInfoZPv , _D2gc4impl12conservative2gc14ConservativeGC6mallocMFNbmkxC8TypeInfoZPv , _D2gc4impl12conservative2gc14ConservativeGC12mallocNoSyncMFNbmkKmxC8TypeInfoZPv , _D4core6memory2GC6mallocFNaNbmkxC8TypeInfoZPv , _gc_malloc , _D2rt4util9container6common7xmallocFNbNimZPv , _D2gc4impl12conservative2gc14ConservativeGC200__T9runLockedS79_D2gc4impl12conservative2gc14ConservativeGC12mallocNoSyncMFNbmkKmxC8TypeInfoZPvS40_D2gc4impl12conservative2gc10mallocTimelS40_D2gc4impl12conservative2gc10numMallocslTmTkTmTxC8TypeInfoZ9runLockedMFNbKmKkKmKxC8TypeInfoZPv )
ld: symbol(s) not found for architecture x86_64
-------------------------------------
Full output of: dmd -unittest -main -v -L-lgmp -L-lc -g gmp/*
predefs DigitalMars Posix OSX darwin LittleEndian D_Version2
all D_SIMD D_InlineAsm_X86_64 X86_64 D_LP64 D_PIC unittest assert
D_HardFloat
binary dmd
version v2.074.0
config /usr/local/etc/dmd.conf
parse dbgio
parse f
parse package
parse q
parse traits
parse z
parse __main
importall dbgio
import
object (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/object.d)
import
core.attribute (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/attribute.d)
importall f
import
std.algorithm.mutation (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/algorithm/mutation.d)
import
std.traits (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/traits.d)
import
std.typetuple (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/typetuple.d)
import
std.meta (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/meta.d)
import
std.range.primitives (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/range/primitives.d)
import
std.typecons (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/typecons.d)
import
core.stdc.stdint (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/stdc/stdint.d)
import
core.stdc.stddef (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/stdc/stddef.d)
import
core.stdc.signal (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/stdc/signal.d)
import
core.stdc.wchar_ (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/stdc/wchar_.d)
import
core.stdc.config (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/stdc/config.d)
import
core.stdc.stdarg (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/stdc/stdarg.d)
import
core.stdc.stdlib (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/stdc/stdlib.d)
import
core.stdc.stdio (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/stdc/stdio.d)
import
core.stdc.time (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/stdc/time.d)
import
core.sys.posix.sys.types (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/sys/posix/sys/types.d)
import
core.sys.posix.config (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/sys/posix/config.d)
importall gmp
importall q
importall traits
importall z
importall __main
semantic dbgio
semantic f
library gmp
library c
library gmp
semantic gmp
library gmp
library gmp
semantic q
semantic traits
semantic z
semantic __main
entry main (null)
semantic2 dbgio
semantic2 f
semantic2 gmp
semantic2 q
semantic2 traits
semantic2 z
semantic2 __main
semantic3 dbgio
semantic3 f
semantic3 gmp
semantic3 q
import
std.exception (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/exception.d)
import
core.stdc.string (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/stdc/string.d)
semantic3 traits
semantic3 z
import
std.ascii (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/ascii.d)
import
std.range (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/range/package.d)
import
std.range.interfaces (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/range/interfaces.d)
import
std.array (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/array.d)
import
core.memory (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/memory.d)
import
std.functional (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/functional.d)
import
std.algorithm.iteration (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/std/algorithm/iteration.d)
import
core.internal.hash (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/internal/hash.d)
import
core.internal.convert (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/internal/convert.d)
import
core.internal.traits (/usr/local/Cellar/dmd/2.074.0/include/dlang/dmd/core/internal/traits.d)
semantic3 __main
code dbgio
function object.dup!ubyte.dup
function object._trustedDup!(const(ubyte), ubyte)._trustedDup
function object._dup!(const(ubyte), ubyte)._dup
function object._doPostblit!ubyte._doPostblit
function object._getPostblit!ubyte._getPostblit
code f
code gmp
code q
function gmp.q.MpQ.toString
function gmp.q.MpQ.toHash
function gmp.q.MpQ.this
function gmp.q.MpQ.canonicalize
function gmp.q.MpQ.~this
function gmp.q.MpQ.numerator
function gmp.q.MpQ.denominator
function gmp.q.MpQ.integerPart
function gmp.q.MpQ.invert
function gmp.q.MpQ.sgn
function gmp.q.MpQ.absolute
function gmp.q.MpQ.initialize
function gmp.q.MpQ._ptr
function gmp.q.MpQ._num_ptr
function gmp.q.MpQ._den_ptr
function gmp.q.MpQ.mutatingCallCount
function gmp.q.MpQ.__aggrPostblit
function gmp.q.MpQ.opAssign
function gmp.q.MpQ.__xopEquals
function gmp.q.MpQ.__xopCmp
function gmp.q.__unittestL430_4
function gmp.q.__unittestL462_5
function gmp.q.__unittestL473_6
function gmp.q.__unittestL484_7
function gmp.q.__unittestL494_8
function gmp.q.__unittestL516_9
function gmp.q.__unittestL527_10
function gmp.q.__unittestL535_11
function gmp.q.__unittestL560_12
function gmp.q.__unittestL569_13
function gmp.q.__unittestL580_14
function gmp.q.__unittestL588_15
function gmp.q.__unittestL611_16
function gmp.q.__unittestL619_17
function gmp.q.__unittestL627_18
function gmp.q.__unittestL635_19
function gmp.q.MpQ.opEquals!().opEquals
function gmp.q.MpQ.opEquals!().opEquals
function gmp.q.MpQ.opCmp!().opCmp
function gmp.q.MpQ.__ctor!(int, ulong).this
function gmp.q.MpQ.__ctor!(ulong, ulong).this
function gmp.q.MpQ.__ctor!double.this
function gmp.q.MpQ.opAssign!double.opAssign
function gmp.q.MpQ.opAssign!float.opAssign
function gmp.q.MpQ.opAssign!int.opAssign
function gmp.q.MpQ.__ctor!(int, int).this
function gmp.q.swap!().swap
function gmp.q.inverse!().inverse
function gmp.q.inverse!().inverse
function gmp.q.MpQ.opEquals!int.opEquals
function gmp.q.abs!().abs
function gmp.q.abs!().abs
function gmp.q.MpQ.opCast!double.opCast
function gmp.q.MpQ.opCmp!().opCmp
function gmp.q.MpQ.opCmp!int.opCmp
function gmp.q.MpQ.opCmp!ulong.opCmp
function gmp.q.MpQ.opCmp!().opCmp
function gmp.q.MpQ.opBinary!"+".opBinary
function gmp.q.MpQ.opBinary!"-".opBinary
function gmp.q.MpQ.opBinary!"*".opBinary
function gmp.q.MpQ.opBinary!"/".opBinary
code traits
function gmp.traits.__unittestL28_20
function gmp.traits.__unittestL28_20.f!().f
function gmp.traits.__unittestL28_20.g!().g
code z
function gmp.z.MpZ.toString
function gmp.z.MpZ.toHash
function gmp.z.MpZ.this
function gmp.z.MpZ.this
function gmp.z.MpZ.swap
function gmp.z.MpZ.dup
function gmp.z.MpZ.fromString
function gmp.z.MpZ.~this
function gmp.z.MpZ.toLong
function gmp.z.MpZ.toInt
function gmp.z.MpZ.unaryMinus
function gmp.z.MpZ.negate
function gmp.z.MpZ.absolute
function gmp.z.MpZ.onesComplement
function gmp.z.MpZ.sizeInBase
function gmp.z.MpZ.populationCount
function gmp.z.MpZ.setBit
function gmp.z.MpZ.clearBit
function gmp.z.MpZ.complementBit
function gmp.z.MpZ.testBit
function gmp.z.MpZ.isZero
function gmp.z.MpZ.isOdd
function gmp.z.MpZ.isEven
function gmp.z.MpZ.isNegative
function gmp.z.MpZ.isPositive
function gmp.z.MpZ.sgn
function gmp.z.MpZ.uintLength
function gmp.z.MpZ.uintLong
function gmp.z.MpZ.initialize
function gmp.z.MpZ.eval
function gmp.z.MpZ._limbs
function gmp.z.MpZ._limbCount
function gmp.z.MpZ._allocStringzCopyOf
function gmp.z.MpZ._ptr
function gmp.z.MpZ.__aggrPostblit
function gmp.z.MpZ.__xopEquals
function gmp.z.MpZ.__xopCmp
function gmp.z.__unittestL1399_21
function gmp.z.__unittestL1407_22
function gmp.z.__unittestL1429_23
function gmp.z.__unittestL1464_24
function gmp.z.__unittestL2036_25
function gmp.z.__unittestL2043_26
function gmp.z.__unittestL2266_27
function gmp.z.__unittestL2289_28
function gmp.z.__unittestL2362_29
function gmp.z.__unittestL2394_30
function gmp.z.__unittestL2419_31
function gmp.z.__unittestL2445_32
function gmp.z.__unittestL2474_33
function gmp.z.__unittestL2503_34
function gmp.z.__unittestL2527_35
function gmp.z.__unittestL2547_36
function gmp.z.__unittestL2564_37
function gmp.z.MpZ.opAssign!().opAssign
function gmp.z.MpZ.opEquals!().opEquals
function gmp.z.MpzAddExpr!(MpZ, MpZ).MpzAddExpr.eval
function gmp.z.MpzAddExpr!(MpZ, MpZ).MpzAddExpr.~this
function gmp.z.MpzAddExpr!(MpZ, MpZ).MpzAddExpr.opAssign
function gmp.z.MpzAddExpr!(MpZ, MpZ).MpzAddExpr.__xopEquals
function gmp.z.MpzAddExpr!(MpZ, MpZ).MpzAddExpr.__xtoHash
function gmp.z.MpzSubExpr!(MpZ, MpZ).MpzSubExpr.eval
function gmp.z.MpzSubExpr!(MpZ, MpZ).MpzSubExpr.~this
function gmp.z.MpzSubExpr!(MpZ, MpZ).MpzSubExpr.opAssign
function gmp.z.MpzSubExpr!(MpZ, MpZ).MpzSubExpr.__xopEquals
function gmp.z.MpzSubExpr!(MpZ, MpZ).MpzSubExpr.__xtoHash
function gmp.z.MpzMulExpr!(MpZ, MpZ).MpzMulExpr.eval
function gmp.z.MpzMulExpr!(MpZ, MpZ).MpzMulExpr.~this
function gmp.z.MpzMulExpr!(MpZ, MpZ).MpzMulExpr.opAssign
function gmp.z.MpzMulExpr!(MpZ, MpZ).MpzMulExpr.__xopEquals
function gmp.z.MpzMulExpr!(MpZ, MpZ).MpzMulExpr.__xtoHash
function gmp.z.MpzDivExpr!(MpZ, MpZ).MpzDivExpr.eval
function gmp.z.MpzDivExpr!(MpZ, MpZ).MpzDivExpr.~this
function gmp.z.MpzDivExpr!(MpZ, MpZ).MpzDivExpr.opAssign
function gmp.z.MpzDivExpr!(MpZ, MpZ).MpzDivExpr.__xopEquals
function gmp.z.MpzDivExpr!(MpZ, MpZ).MpzDivExpr.__xtoHash
function gmp.z.MpzModExpr!(MpZ, MpZ).MpzModExpr.eval
function gmp.z.MpzModExpr!(MpZ, MpZ).MpzModExpr.~this
function gmp.z.MpzModExpr!(MpZ, MpZ).MpzModExpr.opAssign
function gmp.z.MpzModExpr!(MpZ, MpZ).MpzModExpr.__xopEquals
function gmp.z.MpzModExpr!(MpZ, MpZ).MpzModExpr.__xtoHash
function gmp.z.MpzPowUExpr!(MpZ, ulong).MpzPowUExpr.eval
function gmp.z.MpzPowUExpr!(MpZ, ulong).MpzPowUExpr.~this
function gmp.z.MpzPowUExpr!(MpZ, ulong).MpzPowUExpr.opAssign
function gmp.z.MpzPowUExpr!(MpZ, ulong).MpzPowUExpr.__xopEquals
function gmp.z.MpzPowUExpr!(MpZ, ulong).MpzPowUExpr.__xtoHash
function gmp.z.MpzPowMUExpr!(MpZ, ulong, MpZ).MpzPowMUExpr.eval
function gmp.z.MpzPowMUExpr!(MpZ, ulong, MpZ).MpzPowMUExpr.~this
function gmp.z.MpzPowMUExpr!(MpZ, ulong,
MpZ).MpzPowMUExpr.opAssign
function gmp.z.MpzPowMUExpr!(MpZ, ulong,
MpZ).MpzPowMUExpr.__xopEquals
function gmp.z.MpzPowMUExpr!(MpZ, ulong,
MpZ).MpzPowMUExpr.__xtoHash
function gmp.z.MpzNegExpr!(MpZ).MpzNegExpr.eval
function gmp.z.MpzNegExpr!(MpZ).MpzNegExpr.~this
function gmp.z.MpzNegExpr!(MpZ).MpzNegExpr.opAssign
function gmp.z.MpzNegExpr!(MpZ).MpzNegExpr.__xopEquals
function gmp.z.MpzNegExpr!(MpZ).MpzNegExpr.__xtoHash
function gmp.z.MpZ.opBinary!"/".opBinary
function gmp.z.MpZ.opEquals!int.opEquals
function gmp.z.MpZ.opCmp!int.opCmp
function std.algorithm.mutation.swap!(MpZ).swap
function std.exception.doesPointTo!(MpZ, MpZ, void).doesPointTo
function
std.exception.isUnionAliasedImpl!(MpZ).isUnionAliasedImpl
function std.exception.doesPointTo!(__mpz_struct, MpZ,
void).doesPointTo
function
std.exception.isUnionAliasedImpl!(__mpz_struct).isUnionAliasedImpl
function std.exception.doesPointTo!(int, MpZ, void).doesPointTo
function std.exception.doesPointTo!(const(ulong)*, MpZ,
void).doesPointTo
function std.algorithm.mutation.swap!(MpQ).swap
function std.exception.doesPointTo!(MpQ, MpQ, void).doesPointTo
function
std.exception.isUnionAliasedImpl!(MpQ).isUnionAliasedImpl
function std.exception.doesPointTo!(__mpq_struct, MpQ,
void).doesPointTo
function
std.exception.isUnionAliasedImpl!(__mpq_struct).isUnionAliasedImpl
function std.exception.doesPointTo!(__mpz_struct, MpQ,
void).doesPointTo
function std.exception.doesPointTo!(int, MpQ, void).doesPointTo
function std.exception.doesPointTo!(const(ulong)*, MpQ,
void).doesPointTo
function std.exception.doesPointTo!(ulong, MpQ, void).doesPointTo
function std.algorithm.mutation.move!(MpQ).move
function
std.algorithm.mutation.trustedMoveImpl!(MpQ).trustedMoveImpl
function std.algorithm.mutation.moveImpl!(MpQ).moveImpl
function std.algorithm.mutation.moveEmplace!(MpQ).moveEmplace
function gmp.z.MpZ.__ctor!int.this
function std.ascii.toUpper!char.toUpper
function core.internal.hash.hashOf!(const(ulong)).hashOf
function core.internal.convert.toUbyte!(const(ulong)).toUbyte
function gmp.z.MpZ.opCmp!long.opCmp
function gmp.z._integralAbs!(const(int))._integralAbs
function gmp.z.MpZ.opEquals!().opEquals
function gmp.z.MpZ.opCmp!().opCmp
function gmp.z.mpz!int.mpz
function gmp.z.mpz!string.mpz
function gmp.z.toDecimalString!().toDecimalString
function gmp.z.toHex!().toHex
function gmp.z.absUnsign!ulong.absUnsign
function gmp.z.MpZ.opCast!ulong.opCast
function gmp.z._integralAbs!ulong._integralAbs
function gmp.z.MpZ.opBinary!"+".opBinary
function std.algorithm.mutation.move!(MpZ).move
function
std.algorithm.mutation.trustedMoveImpl!(MpZ).trustedMoveImpl
function std.algorithm.mutation.moveImpl!(MpZ).moveImpl
function std.algorithm.mutation.moveEmplace!(MpZ).moveEmplace
function gmp.z.MpZ.opBinary!"-".opBinary
function gmp.z.MpZ.opBinary!"*".opBinary
function gmp.z.MpZ.opBinary!"/".opBinary
function gmp.z.MpZ.opBinary!"%".opBinary
function gmp.z.MpZ.__ctor!uint.this
function gmp.z.MpZ.__ctor!ulong.this
function gmp.z.MpZ.__ctor!double.this
function gmp.z.MpZ.opOpAssign!("+", ulong).opOpAssign
function gmp.z.MpZ.opOpAssign!"-".opOpAssign
function gmp.z.MpZ.opOpAssign!("-", ulong).opOpAssign
function gmp.z.MpZ.opOpAssign!("*", ulong).opOpAssign
function gmp.z.MpZ.opOpAssign!("/", ulong).opOpAssign
function gmp.z.MpZ.opOpAssign!("%", ulong).opOpAssign
function gmp.z.MpZ.opOpAssign!("^^", ulong).opOpAssign
function gmp.z.MpZ.opAssign!int.opAssign
function gmp.z.MpZ.opOpAssign!("+", int).opOpAssign
function gmp.z.MpZ.opOpAssign!("-", int).opOpAssign
function gmp.z.MpZ.opOpAssign!("*", int).opOpAssign
function gmp.z.MpZ.opOpAssign!("/", int).opOpAssign
function gmp.z.MpZ.opOpAssign!("%", int).opOpAssign
function gmp.z.MpZ.opOpAssign!("^^", int).opOpAssign
function gmp.z.MpZ.opAssign!double.opAssign
function gmp.z.MpZ.opAssign!ulong.opAssign
function gmp.z.MpZ.opOpAssign!"/".opOpAssign
function gmp.z.MpZ.opUnary!"-".opUnary
function gmp.z.MpZ.opOpAssign!"*".opOpAssign
function gmp.z.MpZ.opOpAssign!"%".opOpAssign
function gmp.z.MpZ.opEquals!uint.opEquals
function gmp.z.MpZ.opEquals!long.opEquals
function gmp.z.MpZ.opEquals!ulong.opEquals
function gmp.z.MpZ.opEquals!float.opEquals
function gmp.z.MpZ.opEquals!double.opEquals
function gmp.z.MpZ.opCast!bool.opCast
function gmp.z.MpZ.opCast!long.opCast
function gmp.z.MpZ.opCast!double.opCast
function gmp.z.MpZ.opCmp!().opCmp
function gmp.z.MpZ.opCmp!uint.opCmp
function gmp.z.MpZ.opCmp!ulong.opCmp
function gmp.z.MpZ.opCmp!double.opCmp
function gmp.z.MpZ.opUnary!"+".opUnary
function gmp.z.abs!().abs
function gmp.z.abs!().abs
function gmp.z.cmpabs!().cmpabs
function gmp.z.cmpabs!().cmpabs
function gmp.z.cmpabs!().cmpabs
function gmp.z.nextPrime!().nextPrime
function gmp.z.nextPrime!().nextPrime
function gmp.z.gcd!().gcd
function gmp.z.gcd!().gcd
function gmp.z.gcd!().gcd
function gmp.z.gcd!().gcd
function gmp.z.gcd!().gcd
function gmp.z.lcm!().lcm
function gmp.z.lcm!().lcm
function gmp.z.lcm!().lcm
function gmp.z.lcm!().lcm
function gmp.z.lcm!().lcm
function gmp.z.onesComplement!().onesComplement
function gmp.z.onesComplement!().onesComplement
function gmp.z.MpZ.opBinary!"+".opBinary
function gmp.z.MpZ.opBinary!"-".opBinary
function gmp.z.MpZ.opBinary!("+", int).opBinary
function gmp.z.MpZ.opBinaryRight!("+", int).opBinaryRight
function gmp.z.MpZ.opBinary!("+", ulong).opBinary
function gmp.z.MpZ.opBinaryRight!("+", ulong).opBinaryRight
function gmp.z.MpZ.opBinary!("-", int).opBinary
function gmp.z.MpZ.opBinaryRight!("-", int).opBinaryRight
function gmp.z.MpZ.opBinaryRight!("-", ulong).opBinaryRight
function gmp.z.MpZ.opBinary!("*", ulong).opBinary
function gmp.z.MpZ.opBinary!("*", int).opBinary
function gmp.z.MpZ.opBinaryRight!("*", int).opBinaryRight
function gmp.z.MpZ.opBinaryRight!("*", ulong).opBinaryRight
function gmp.z.MpZ.opBinary!"*".opBinary
function gmp.z.MpZ.opBinary!("/", int).opBinary
function gmp.z.MpZ.opBinary!("/", ulong).opBinary
function gmp.z.MpZ.opBinaryRight!("/", int).opBinaryRight
function gmp.z.MpZ.opCast!int.opCast
function gmp.z.MpZ.opBinaryRight!("/", ulong).opBinaryRight
function gmp.z.MpZ.opBinary!("%", int).opBinary
function gmp.z.MpZ.opBinaryRight!("%", int).opBinaryRight
function gmp.z.MpZ.opBinaryRight!("%", ulong).opBinaryRight
function gmp.z.MpZ.opBinary!"%".opBinary
function gmp.z.MpZ.opBinary!("-", ulong).opBinary
function gmp.z.MpZ.opBinaryRight!("-", long).opBinaryRight
function gmp.z.MpZ.opBinary!("^^", int).opBinary
function gmp.z.MpZ.opBinary!("^^", long).opBinary
function gmp.z.MpZ.opBinary!("^^", ulong).opBinary
function gmp.z.MpZ.pow!(ulong, ulong).pow
function gmp.z.MpZ.pow!(ulong, int).pow
function gmp.z.MpZ.pow!(int, int).pow
function gmp.z.powm!().powm
function gmp.z.powm!().powm
function gmp.z.MpZ.__ctor!(immutable(int)).this
function gmp.z.MpZ.opBinary!"&".opBinary
function gmp.z.MpZ.opEquals!(immutable(int)).opEquals
function gmp.z.MpZ.opBinary!"|".opBinary
function gmp.z.MpZ.opBinary!"^".opBinary
function gmp.z.MpZ.opOpAssign!"&".opOpAssign
function gmp.z.MpZ.opOpAssign!"|".opOpAssign
function gmp.z.MpZ.opOpAssign!"^".opOpAssign
function gmp.z.swap!().swap
function gmp.z.MpZ.__ctor!long.this
function gmp.z.MpZ.__ctor!short.this
function gmp.z.MpZ.fitsIn!short.fitsIn
function gmp.z.MpZ.fitsIn!int.fitsIn
function gmp.z.MpZ.fitsIn!long.fitsIn
function gmp.z.MpZ.__ctor!ushort.this
function gmp.z.MpZ.fitsIn!ushort.fitsIn
function gmp.z.MpZ.fitsIn!uint.fitsIn
function gmp.z.MpZ.fitsIn!ulong.fitsIn
function gmp.z.MpZ.mersennePrime!int.mersennePrime
function gmp.z.MpZ.mersennePrime!ulong.mersennePrime
function gmp.z.MpZ.opOpAssign!("^^", long).opOpAssign
function gmp.z.MpZ.opOpAssign!"+".opOpAssign
function gmp.z.MpZ.opBinary!("%", immutable(ulong)).opBinary
function gmp.z.MpZ.opBinary!("%", immutable(uint)).opBinary
function gmp.z.MpZ.opBinary!("%", immutable(ushort)).opBinary
function gmp.z.MpZ.opBinary!("%", immutable(ubyte)).opBinary
function gmp.z.MpZ.opBinary!("%", immutable(long)).opBinary
function gmp.z.MpZ.opBinary!("%", immutable(int)).opBinary
function gmp.z.MpZ.opBinary!("%", immutable(short)).opBinary
function gmp.z.MpZ.opBinary!("%", immutable(byte)).opBinary
function gmp.z.MpZ.opUnary!"++".opUnary
function gmp.z.MpZ.opUnary!"--".opUnary
function gmp.z.MpZ.opCast!ubyte.opCast
function gmp.z.MpZ.opCast!ushort.opCast
function gmp.z.MpZ.opCast!uint.opCast
function gmp.z.MpZ.opCast!byte.opCast
function gmp.z.MpZ.opCast!short.opCast
function gmp.z.MpZ.opCmp!(const(int)).opCmp
function gmp.z.MpZ.mersennePrime!(immutable(ulong)).mersennePrime
function gmp.z.MpZ.pow!(ulong, immutable(ulong)).pow
function gmp.z.MpZ.__ctor!(immutable(ulong)).this
function gmp.z.powm!().powm
function gmp.z.MpZ.__ctor!(MpzAddExpr!(MpZ, MpZ)).this
function gmp.z.MpZ.opAssign!(MpzAddExpr!(MpZ, MpZ)).opAssign
function gmp.z.MpZ.opAssign!(MpzAddExpr!(MpZ, MpZ)).opAssign
function gmp.z.MpZ.__ctor!(MpzSubExpr!(MpZ, MpZ)).this
function gmp.z.MpZ.opAssign!(MpzSubExpr!(MpZ, MpZ)).opAssign
function gmp.z.MpZ.__ctor!(MpzMulExpr!(MpZ, MpZ)).this
function gmp.z.MpZ.opAssign!(MpzMulExpr!(MpZ, MpZ)).opAssign
function gmp.z.MpZ.__ctor!(MpzDivExpr!(MpZ, MpZ)).this
function gmp.z.MpZ.opAssign!(MpzDivExpr!(MpZ, MpZ)).opAssign
function gmp.z.MpZ.__ctor!(MpzModExpr!(MpZ, MpZ)).this
function gmp.z.MpZ.opAssign!(MpzModExpr!(MpZ, MpZ)).opAssign
function gmp.z.MpZ.__ctor!(MpzNegExpr!(MpZ)).this
function gmp.z.MpZ.opAssign!(MpzNegExpr!(MpZ)).opAssign
code __main
function D main
cc dbgio.o -o dbgio -g -m64 -Xlinker -no_compact_unwind -lgmp -lc
-L/usr/local/Cellar/dmd/2.074.0/lib -lgmp -lgmp -lgmp -lgmp -lc
-lphobos2 -lpthread -lm
Undefined symbols for architecture x86_64:
"free", referenced from:
_D3gmp1z3MpZ6__ctorMFNaNbNcNiNexAyakZS3gmp1z3MpZ in dbgio.o
_D3gmp1z3MpZ10fromStringMFNaNbNcNiNjNexAyakZS3gmp1z3MpZ in
dbgio.o
(maybe you meant:
_D2rt4util9container5treap33__T5TreapTS2gc11gcinterface4RootZ5Treap8freeNodeFNbNiPS2rt4util9container5treap33__T5TreapTS2gc11gcinterface4RootZ5Treap4NodeZv, _D2gc4impl12conservative2gc3Gcx8log_freeMFNbPvZv , _D2gc4impl12conservative2gc4Pool12freePageBitsMFNbmKxG4mZv , _D2gc4impl12conservative2gc8freeTimel , _D2rt5minfo11ModuleGroup4freeMFZv , _D2gc4impl6manual2gc8ManualGC4freeMFNbPvZv , _D2gc4impl12conservative2gc14ConservativeGC10freeNoSyncMFNbPvZv , _D2gc4impl12conservative2gc14ConservativeGC163__T9runLockedS63_D2gc4impl12conservative2gc14ConservativeGC10freeNoSyncMFNbPvZvS37_D2gc4impl12conservative2gc8freeTimelS37_D2gc4impl12conservative2gc8numFreeslTPvZ9runLockedMFNbKPvZv , _D2rt4util9container5treap34__T5TreapTS2gc11gcinterface5RangeZ5Treap8freeNodeFNbNiPS2rt4util9container5treap34__T5TreapTS2gc11gcinterface5RangeZ5Treap4NodeZv , _D2gc4impl12conservative2gc15LargeObjectPool9freePagesMFNbmmZv , _D2rt7dwarfeh15ExceptionHeader4freeFPS2rt7dwarfeh15ExceptionHeaderZv , _D2gc4impl12conservative2gc14ConservativeGC4freeMFNbPvZv , _D4core6memory2GC4freeFNaNbPvZv , _gc_free )
"malloc", referenced from:
_D3gmp1z3MpZ19_allocStringzCopyOfMFNaNbNiNexAyaZPa in
dbgio.o
(maybe you meant:
_D2gc4impl12conservative2gc3Gcx10log_mallocMFNbPvmZv,
_D2gc4impl12conservative2gc10mallocTimel ,
_D2gc4impl6manual2gc8ManualGC6mallocMFNbmkxC8TypeInfoZPv ,
_D2gc4impl12conservative2gc14ConservativeGC207__T9runLockedS83_D2gc4impl12conservative2gc14ConservativeGC13reallocNoSyncMFNbPvmKkKmxC8TypeInfoZPvS40_D2gc4impl12conservative2gc10mallocTimelS40_D2gc4impl12conservative2gc10numMallocslTPvTmTkTmTxC8TypeInfoZ9runLockedMFNbKPvKmKkKmKxC8TypeInfoZPv , _D2gc4impl12conservative2gc14ConservativeGC6mallocMFNbmkxC8TypeInfoZPv , _D2gc4impl12conservative2gc14ConservativeGC12mallocNoSyncMFNbmkKmxC8TypeInfoZPv , _D4core6memory2GC6mallocFNaNbmkxC8TypeInfoZPv , _gc_malloc , _D2rt4util9container6common7xmallocFNbNimZPv , _D2gc4impl12conservative2gc14ConservativeGC200__T9runLockedS79_D2gc4impl12conservative2gc14ConservativeGC12mallocNoSyncMFNbmkKmxC8TypeInfoZPvS40_D2gc4impl12conservative2gc10mallocTimelS40_D2gc4impl12conservative2gc10numMallocslTmTkTmTxC8TypeInfoZ9runLockedMFNbKmKkKmKxC8TypeInfoZPv )
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to
see invocation)
Error: linker exited with status 1
More information about the Digitalmars-d-learn
mailing list