Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在cmake中设置图像\文件\大\地址\感知?_Cmake - Fatal编程技术网

如何在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")

默认情况下,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")
    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
链接器可能支持相同的标志。