Next: , Previous: Target code compilation options, Up: Invocation   [Contents][Index]


9.12 Link options


-o filename
--output-file filename

Specify the name of the final executable. (The default executable name is the same as the name of the first module on the command line, but without the ‘.m’ extension.) This option is ignored by ‘mmc --make’.


--ld-flags options
--ld-flags option

Specify options to be passed to the command invoked by ‘mmc’ to link an executable. Use mmc --output-link-command to find out which command is used. ‘--ld-flag’ should be used for single words which need to be quoted when passed to the shell.


--ld-libflags options
--ld-libflag option

Specify options to be passed to the command invoked by ‘mmc’ to link a shared library. Use mmc --output-shared-lib-link-command to find out which command is used. ‘--ld-libflag’ should be used for single words which need to be quoted when passed to the shell.


-L directory
--library-directory directory

Append directory to the list of directories in which to search for libraries.


-R directory
--runtime-library-directory directory

Append directory to the list of directories in which to search for shared libraries at runtime.


--no-default-runtime-library-directory

Do not add any directories to the runtime search path automatically.


--shlib-linker-install-name-path directory

Specify the path where a shared library will be installed. This option is useful on systems where the runtime search path is obtained from the shared library and not via the -R option (such as Mac OS X).


-l library
--library library

Link with the specified library.


--link-object file

Link with the specified object file or archive of object files.


--search-lib-files-dir directory
--search-library-files-directory directory

Search directory for Mercury library files have not yet been installed. Similar to adding directory using all of the ‘--search-directory’, ‘--intermod-directory’, ‘--library-directory’, ‘--init-file-directory’, and ‘--c-include-directory’ options, but does the right thing when ‘--use-subdirs’ or ‘--use-grade-subdirs’ options are used.


--mld directory
--mercury-library-directory directory

Append directory to the list of directories to be searched for Mercury libraries. This will add ‘--search-directory’, ‘--library-directory’, ‘--init-file-directory’ and ‘--c-include-directory’ options as needed. See Using installed libraries with mmc --make.


--ml library
--mercury-library library

Link with the specified Mercury library. See Using installed libraries with mmc --make.


--mercury-standard-library-directory directory
--mercury-stdlib-dir directory

Search directory for the Mercury standard library. Implies ‘--mercury-library-directory directory’ and ‘--mercury-configuration-directory directory’.


--no-mercury-standard-library-directory
--no-mercury-stdlib-dir

Don’t use the Mercury standard library. Implies ‘--no-mercury-configuration-directory’.


--init-file-directory directory

Append directory to the list of directories to be searched for ‘.init’ files by ‘c2init’.


--init-file file

Append file to the list of ‘.init’ files to be passed to ‘c2init’.


--trace-init-file file

Append file to the list of ‘.init’ files to be passed to ‘c2init’ when tracing is enabled.


--linkage {shared,static}

Specify whether to use shared or static linking for executables. Shared libraries are always linked with ‘--linkage shared’.


--mercury-linkage {shared,static}

Specify whether to use shared or static linking when linking an executable with Mercury libraries. Shared libraries are always linked with ‘--mercury-linkage shared’.


--no-demangle

Don’t pipe link errors through the Mercury demangler.


--no-main

Don’t generate a C main() function. The user’s code must provide a main() function.


--no-allow-undefined

Do not allow undefined symbols in shared libraries.


--no-use-readline

Disable use of the readline library in the debugger.


--runtime-flags flags

Specify flags to pass to the Mercury runtime.


--extra-initialization-functions
--extra-inits

Search ‘.c’ files for extra initialization functions. (This may be necessary if the C files contain hand-coded C code with ‘INIT’ comments, rather than containing only C code that was automatically generated by the Mercury compiler.)


--link-executable-command command

Specify the command used to invoke the linker when linking an executable.


--link-shared-lib-command command

Specify the command used to invoke the linker when linking a shared library.


--no-strip

Do not strip executables.


--strip-executable-command command

Specify the command used to strip executables if no linker flag to do so is available. This option has no effect on ‘ml’.


--strip-executable-shared-flags options

Specify options to pass to the strip executable command when linking against Mercury shared libraries.


--stripe-executable-static-flags options

Specify options to pass to the strip executable command when linking against Mercury static libraries.


--java-archive-command command

Specify the command used to produce Java archive (JAR) files.


--framework framework

Build and link against the specified framework. (Mac OS X only.)


-F directory
--framework-directory directory

Append the specified directory to the framework search path. (Mac OS X only.)


--sign-assembly keyfile

Sign the current assembly with the strong name contained in the specified key file. (This option is only meaningful when generating library assemblies with the C# back-end.)


--cstack-reserve-size size

Set the total size of the C stack in virtual memory for executables. The stack size is given in bytes. This option is only supported (and indeed only necessary) on systems running Microsoft Windows.


Next: , Previous: Target code compilation options, Up: Invocation   [Contents][Index]