cmake RUNTIME_OUTPUT_DIRECTORY в Windows

Зависит от того, какой GC использует ваша JVM. Если это JDK9, то, вероятно, это G1, который «жаден», когда речь идет о потреблении памяти, поэтому в зависимости от способа проверки используемой памяти может показаться, что он занимает много памяти (где, как это резервирует его и использует / освобождает динамически / по требованию.

Вы можете использовать

https://docs.oracle.com/javase/8/docs/technotes/tools/ unix / jstat.html

для проверки потребления памяти.

А что касается анализа ГХ и потребления памяти, проверьте следующее: Проблемы с высоким использованием памяти при сборщике мусора G1 [111 ] + https://www.javacodegeeks.com/2017/11/minimize-java-memory-usage-right-garbage-collector.html

17
задан tversteeg 6 October 2016 в 13:00
поделиться

5 ответов

Я нашел несколько хороших обсуждений этой темы:

http://www.cmake.org/pipermail/cmake/2008-April/021355.html

http://www.vtk.org/Bug/bug_view_advanced_page.php?bug_id=8366

было бы возможно использовать устаревшее EXECUTABLE_OUTPUT_PATH вместо RUNTIME_OUTPUT_DIRECTORY? Я не уверен, что функциональность изменила между этими 2, но это могло бы стоить попытки.

2
ответ дан 30 November 2019 в 13:13
поделиться

Некоторые cmake переменные имеют сборку определенные версии.

CMAKE_C_FLAGS 
    the compiler flags for compiling C sources. Note you can also specify switches with ADD_DEFINITIONS(). 
CMAKE_C_FLAGS_DEBUG 
    compiler flags for compiling a debug build from C sources. 
CMAKE_C_FLAGS_RELEASE 
    compiler flags for compiling a release build from C sources. 
CMAKE_C_FLAGS_RELWITHDEBINFO 
    compiler flags for compiling a release build with debug flags from C sources. 

я не проверил их, Вар существует, но возможно установка RUNTIME_OUTPUT_DIRECTORY_DEBUG & & RUNTIME_OUTPUT_DIRECTORY_RELEASE к тому же самому мог бы работать.

1
ответ дан 30 November 2019 в 13:13
поделиться

Необходимо изменить местоположение сборки проектов Visual Studio. Перейдите к Свойствам проекта, и на Compile вкладка указывает 'Выходной путь сборки', чтобы быть везде, где Вы желаете.

Примечание

не знает, насколько релевантный это - поскольку я не знаю о CMake.

можно использовать следующий маркер в событиях сборки Visual Studio:

$(TargetPath)

Это будет путем к местоположению, что Ваш проект разрабатывается к так в зависимости от Ваших настроек проекта, это или будет папкой Debug или Release.

-5
ответ дан 30 November 2019 в 13:13
поделиться

Я не уверен, являются ли эти каталоги преднамеренными или ошибочными, но, рискуя прямой несовместимостью, вы можете добавить:

if (MSVC_IDE)
    # hack to get around the "Debug" and "Release" directories cmake tries to add on Windows
    set_target_properties (${NAME} PROPERTIES PREFIX "../")
endif()

у меня это работает

11
ответ дан 30 November 2019 в 13:13
поделиться

На данный момент лучший ответ, который я нашел, - это просто написать команды установки CMake для каждой из моих целей и файлов данных и настроить отладчик MSVC на выход из каталога установки. Это дает дополнительное преимущество использования CPack для создания установщиков.

1
ответ дан 30 November 2019 в 13:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: