如何在cmake中设置图像\文件\大\地址\感知?
默认情况下,32位进程最多可以使用2GB地址空间(Windows 10 x64)。在Visual Studio 2019中,可以更改项目属性:链接器/设置。如何在cmake中设置图像\文件\大\地址\感知标志 我使用如何在cmake中设置图像\文件\大\地址\感知?,cmake,Cmake,默认情况下,32位进程最多可以使用2GB地址空间(Windows 10 x64)。在Visual Studio 2019中,可以更改项目属性:链接器/设置。如何在cmake中设置图像\文件\大\地址\感知标志 我使用CMAKE_EXE_LINKER_FLAGS和CMAKE_SHARED_LINKER_FLAGS变量,例如 if (MSVC) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE")
CMAKE_EXE_LINKER_FLAGS
和CMAKE_SHARED_LINKER_FLAGS
变量,例如
if (MSVC)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /LARGEADDRESSAWARE")
endif()
另一种可能性(现代CMake风格)是设置目标的属性,即
if (MSVC)
set_target_properties(MyTargetName PROPERTIES LINK_FLAGS "/LARGEADDRESSAWARE")
endif()
我使用
CMAKE_EXE_LINKER_FLAGS
和CMAKE_SHARED_LINKER_FLAGS
变量来实现这一点,例如:
if (MSVC)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /LARGEADDRESSAWARE")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /LARGEADDRESSAWARE")
endif()
另一种可能性(现代CMake风格)是设置目标的属性,即
if (MSVC)
set_target_properties(MyTargetName PROPERTIES LINK_FLAGS "/LARGEADDRESSAWARE")
endif()
IMAGE\u FILE\u LARGE\u ADDRESS\u AWARE标志是否特定于MSVC?它是Microsoft链接器的一个特殊链接器标志,因此是特定于MSVC的。@Irbis GCC等价物的拼写为
-Wl,--LARGE ADDRESS AWARE
,它告诉它将--LARGE ADDRESS AWARE
传递给链接器。看起来Clang的lld
链接器可能支持相同的标志。IMAGE\u FILE\u LARGE\u ADDRESS\u AWARE标志是否特定于MSVC?它是Microsoft链接器的特殊链接器标志,因此是特定于MSVC的。@Irbis GCC等价物的拼写为-Wl,-LARGE ADDRESS AWARE
,它告诉它将--大地址感知
传递给链接器。看起来Clang的lld
链接器可能支持相同的标志。