macro(add_rpath_to_target targetName)
if(TARGET_RPATH)
if (
C
M
A
K
E
S
Y
S
T
E
M
N
A
M
E
M
A
T
C
H
E
S
"
D
a
r
w
i
n
"
)
t
a
r
g
e
t
l
i
n
k
l
i
b
r
a
r
i
e
s
(
{CMAKE_SYSTEM_NAME} MATCHES "Darwin") target_link_libraries(
CMAKESYSTEMNAMEMATCHES"Darwin")targetlinklibraries({targetName} "-rpath
T
A
R
G
E
T
R
P
A
T
H
"
)
e
l
s
e
i
f
(
(
{TARGET_RPATH}") elseif((
TARGETRPATH")elseif(({CMAKE_SYSTEM_NAME} MATCHES “Linux”) OR (
C
M
A
K
E
S
Y
S
T
E
M
N
A
M
E
M
A
T
C
H
E
S
"
A
n
d
r
o
i
d
"
)
)
t
a
r
g
e
t
l
i
n
k
l
i
b
r
a
r
i
e
s
(
{CMAKE_SYSTEM_NAME} MATCHES "Android")) target_link_libraries(
CMAKESYSTEMNAMEMATCHES"Android"))targetlinklibraries({targetName} “-Wl,-rpath,${TARGET_RPATH}”)
endif()
endif()
endmacro()
【嵌入式开发基础】CMake如何获取当前CMakeLists.txt 运行的平台
最新推荐文章于 2025-01-04 20:21:23 发布
该博客内容涉及CMake在Darwin(Mac OS)和Linux/Android平台上为targetName目标设置链接库的动态搜索路径。通过使用`target_link_libraries`函数结合特定平台标志,如`-rpath`,确保程序运行时能够找到依赖的库。
摘要由CSDN通过智能技术生成