Corro CMake: Select Variant
para selecionar Relaese
e CMake: Configure
atualizar buid/CMakeCache.txt
o que reflete a variante:
CMAKE_BUILD_TYPE:STRING=Release
A extensão CMake é mostrada no VSCode Release
no Configure
status do projeto. No entanto, a compilação sempre gera os artefatos de compilação na x64/Debug
pasta e os binários são compilados com CMAKE_CXX_FLAGS_DEBUG
em vez de CMAKE_CXX_FLAGS_RELEASE
como eu verifico usando file
o comando e ele mostrawith debug_info, not stripped
Vejo Release
na saída do terminal do VSCode:
build task started....
/usr/bin/cmake --build /usr/src/MyApp/build --config Release --target all --
Entretanto, no final da compilação, os executáveis são vinculados e compilados na Debug
pasta:
[6/6 100% :: 11.014] Linking CXX executable /usr/src/MyApp/x64/Debug/Console
CMake: Log Diagnostics
:
{
"os": "linux",
"vscodeVersion": "1.94.2",
"cmtVersion": "1.19.52",
"configurations": [
{
"folder": "/usr/src/MyApp",
"cmakeVersion": "3.30.3",
"configured": true,
"generator": "Ninja",
"usesPresets": false,
"compilers": {
"C": "/usr/bin/gcc",
"CXX": "/usr/bin/g++"
}
}
],
"cpptoolsIntegration": {
"isReady": true,
"hasCodeModel": true,
"activeBuildType": "Release",
"buildTypesSeen": [
"Debug"
],
"requests": [],
"responses": [],
"partialMatches": [],
"targetCount": 31,
"executablesCount": 2,
"librariesCount": 1,
"targets": []
},
"settings": [
{
"communicationMode": "automatic",
"useCMakePresets": "auto",
"configureOnOpen": true
}
]
Quando executo CMake: Configure
a partir da paleta de comandos do VSCode:
[cpptools] The build configurations generated do not contain the active build configuration. Using "Debug" for CMAKE_BUILD_TYPE instead of "Release" to ensure that IntelliSense configurations can be found
De acordo com a documentação
--config <cfg>
trabalha paraMas no seu "gerador" predefinido: "Ninja", que não é uma ferramenta de multiconfiguração.
Meu palpite é que deveria ser "Ninja Multi-Config".