gpt4 book ai didi

c++ - 如何通过导入的目标可传递地设置 “CMAKE_EXE_LINKER_FLAGS”?

转载 作者:行者123 更新时间:2023-12-02 10:39:23 25 4
gpt4 key购买 nike

我正在为一个库实现FindXXX.cmake,该库要求与之链接的exe添加特定的链接器标志。

具体来说,这是针对LuaJIT的,它要求使用以下方法链接应用程序:

-pagezero_size 10000 -image_base 100000000

我宁愿不只是设置CMAKE_EXE_LINKER_FLAGS,因为在我的项目中可能会存在其他未链接到LuaJIT的exe文件,而是更可能来自于传递设置。

另外,我不能仅将其添加到IMPORTED_LINK_INTERFACE_LIBRARIES,因为这些标志将在其他针对此依赖关系进行链接的库中使用,并且该设置特定于链接应用程序。

额外信用:这仅适用于64位Mac osx构建。

最佳答案

您可以使用target_link_libraries(your_target your_flags)。您的标志必须以-开头。您可以使用APPLE变量检查Apple系统,也可以使用CMAKE_SIZEOF_VOID_P检查64位系统。

您可以在if语句中将所有内容组合在一起,如下所示:

if(APPLE AND CMAKE_SIZEOF_VOID_P EQUAL 8)
target_link_libraries(your_target your_flags)
endif()

关于c++ - 如何通过导入的目标可传递地设置 “CMAKE_EXE_LINKER_FLAGS”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51372399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com