2016-05-12 6 views
-1

Kann ich irgendwie finden, wo wird binary erstellt von add_executable plaziert?Wie kann bekannt sein, wo ist binär kompiliert?

Ich habe viele CMakeLists - jeder für jede binäre und jede andere, wo ich alle Teile des Projekts einschließen.

Wenn ich ausführen cmake -D CMAKE_BUILD_TYPE = Freigabe Pfad/zu/Projekt, dann speichern alle Binärdateien in Verzeichnisse, wo ihre CMakeList (jeweils an einem anderen Ort).

Auf der anderen Seite, wenn ich die einige Befehl ohne CMAKE_BUILD_TYPE alle Binärdateien sind in das aktuelle Verzeichnis. Kannst du mir erklären warum?

Ich brauche einige Binärdateien, weil seine Ausgabe auch Teil des Pakets ist. Wie können wir diese Wege erkennen?

+0

Welche Host-Umgebung und Toolchain verwenden Sie? Machst du In-Source- oder Out-of-Source-Builds? Wenn Sie alle ausführbaren Dateien in einem Verzeichnis haben möchten, können Sie ['CMAKE_RUNTIME_OUTPUT_DIRECTORY'] setzen (https://cmake.org/cmake/help/latest/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.html). – Florian

+0

Sorry Leute, Problem war irgendwo in Dateien ein Kollege gesetzt CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE/DEBUG. – lofcek

Antwort

0

Wenn Sie vorhersagbare Speicherorte für die binäre Ausgabe haben möchten, legen Sie die Zieleigenschaft RUNTIME_OUTPUT_DIRECTORY fest.

Wenn Sie alles nur intern während des Builds mit add_custom_command ausführen möchten, können Sie einfach den Zielnamen in den Befehl eingeben und CMake ersetzt den tatsächlichen Pfad. In anderen Kontexten, die einen Generatorausdruck akzeptieren, können Sie auch $<TARGET_FILE_NAME:target> verwenden.

Verwandte Themen