diff options
| author | ruki <[email protected]> | 2017-08-18 22:33:24 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-08-18 22:33:32 +0800 |
| commit | 24ef8913953a7c49fb1216ac086dbe7ca955155f (patch) | |
| tree | f7c853c8f1829d77a60b9cbb820fc5a1c2b11039 /docs | |
| parent | c049bcb7fc2e2e032ebc69897e5170c214bf8df2 (diff) | |
support @loader_path and ORIGIN
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/manual.md | 13 | ||||
| -rw-r--r-- | docs/zh/manual.md | 13 |
2 files changed, 26 insertions, 0 deletions
diff --git a/docs/manual.md b/docs/manual.md index 5eb1a20df..9d0cf5b46 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -1608,6 +1608,19 @@ target("test") 而在为dlang程序进行动态库链接时,xmake会自动处理成`-L-rpath=xxx`来传入dlang的链接器,这样就避免了直接使用`add_ldflags`需要自己判断和处理不同平台和编译器问题。 +2.1.7版本对这个接口进行了改进,支持:`@loader_path`, `@executable_path` 和 `$ORIGIN`的内置变量,来指定程序的加载目录,它们的效果基本上是一样的,主要是为了同时兼容macho, elf。 + +例如: + +```lua +target("test") + set_kind("binary") + add_linkdirs("$(buildir)/lib") + add_rpathdirs("@loader_path/lib") +``` + +指定test程序加载当前执行目录下`lib/*.[so|dylib]`的动态库文件,这将有助于提升程序的可移植性,不用写死绝对路径和相对路径,导致程序和目录切换引起程序加载动态库失败。 + ##### target:add_includedirs ###### 添加头文件搜索目录 diff --git a/docs/zh/manual.md b/docs/zh/manual.md index 0008c546e..fc9bad30e 100644 --- a/docs/zh/manual.md +++ b/docs/zh/manual.md @@ -1625,6 +1625,19 @@ target("test") 而在为dlang程序进行动态库链接时,xmake会自动处理成`-L-rpath=xxx`来传入dlang的链接器,这样就避免了直接使用`add_ldflags`需要自己判断和处理不同平台和编译器问题。 +2.1.7版本对这个接口进行了改进,支持:`@loader_path`, `@executable_path` 和 `$ORIGIN`的内置变量,来指定程序的加载目录,它们的效果基本上是一样的,主要是为了同时兼容macho, elf。 + +例如: + +```lua +target("test") + set_kind("binary") + add_linkdirs("$(buildir)/lib") + add_rpathdirs("@loader_path/lib") +``` + +指定test程序加载当前执行目录下`lib/*.[so|dylib]`的动态库文件,这将有助于提升程序的可移植性,不用写死绝对路径和相对路径,导致程序和目录切换引起程序加载动态库失败。 + ##### target:add_includedirs ###### 添加头文件搜索目录 |
