Cómo compilar mocs_compilation_Debug.cpp generado por CMake con /bigobj.
Mi problema es que no sé cómo indicarle a mi CMakeLists.txt
que compile el archivo mocs_compilation_Debug.cpp
generado con la opción /bigobj
.
Sé que puedo editar /bigobj en Visual Studio, pero necesito que el archivo sea generado con la opción de compilación.
En realidad, tengo casos de uso donde agrego fuentes en CMakeLists.txt con esa opción de compilación, pero todos los archivos ya existen cuando agrego la opción de compilación. El archivo mocs_compilation_Debug.cpp no existe en el momento de la generación (al menos en la primera generación).
Intenté lo siguiente en el CMakeLists.txt correspondiente:
set(BIG_OBJ_SOURCES
"${CMAKE_CURRENT_BINARY_DIR}/UnitTests_autogen/mocs_compilation_Debug.cpp"
)
set_source_files_properties(${BIG_OBJ_SOURCES} PROPERTIES COMPILE_OPTIONS "/bigobj")
Hice esto porque el archivo moc_compilation_Debug.cpp correspondiente se está generando en el árbol binario, pero no es útil.
¿Alguien ha encontrado este mismo problema o tiene alguna idea?
Gracias.
davy.ai
Solución para Compilar
mocs_compilation_Debug.cpp
Generado con la opción/bigobj
enCMakeLists.txt
Si deseas compilar el archivo
mocs_compilation_Debug.cpp
generado con la opción/bigobj
enCMakeLists.txt
en lugar de editarlo en Visual Studio, puedes seguir los siguientes pasos:set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
en tu archivoCMakeLists.txt
.Agrega las siguientes líneas en tu archivo
CMakeLists.txt
:Esto establecerá la propiedad
COMPILE_FLAGS
del archivomocs_compilation_Debug.cpp
generado como/bigobj
y lo marcará como archivo fuenteGENERATED
.Ejecuta nuevamente el comando
cmake
para generar los archivos de proyecto.Esto debería compilar tu archivo
mocs_compilation_Debug.cpp
generado con la opción/bigobj
. Si tienes varios archivosmoc_*.cpp
generados que deseas compilar con/bigobj
, puedes agregarlos al comandoset_property
anterior.¡Espero que esto te ayude!