Ich möchte RxCpp auf Linux (GCC) verwenden, aber ich habe Probleme, RxCpp Bibliothek passend zu meinem cmake Projekt hinzuzufügen. Ich folgte die Klonierung und Bauanleitungen und lief:RxCpp Bibliothek zu cmake Projekt hinzufügen
git clone --recursive https://github.com/Reactive-Extensions/RxCpp.git
cd RxCpp
mkdir projects/build
cd projects/build
cmake -G"Unix Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=RelWithDebInfo -B. ../CMake
make
Ich versuchte make install
zu laufen, aber bekam:
make: *** No rule to make target 'install'. Stop.
Dann bemerkte ich die Datei libRxCpp.so
in meinem Build-Verzeichnis und kopiert es:
cp libRxCpp.so /sw/RxCpp/2.3.0/
Ich habe ein neues Projekt in Clion erstellt, das cmake verwendet und CMakeLists.txt
wie folgt geändert:
cmake_minimum_required(VERSION 3.6)
project(RxCpp_Example)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
# my try to add library RxCpp
set(RxCpp_Lib_PATH /sw/RxCpp/2.3.0/)
find_library(RxCpp_Lib NAMES libRxCpp.so PATHS ${RxCpp_Lib_PATH})
target_link_libraries(RxCpp_Example ${RxCpp_Lib})
set(SOURCE_FILES main.cpp)
add_executable(RxCpp_Example ${SOURCE_FILES})
Allerdings bekomme ich einen Fehler, wenn die cmake Projekt Aktualisierung (oder cmake in Terminal ausgeführt wird):
CMake Error at CMakeLists.txt:9 (target_link_libraries):
Cannot specify link libraries for target "RxCpp_Example" which is not built
by this project.
Was mache ich falsch? Wie kann ich die RxCpp-Bibliothek zu meinem CMake-Projekt hinzufügen?
Vielen Dank. Wie kann ich die Header-Dateien von RxCpp einbinden? Es gibt kein Verzeichnis 'include'. Kann ich es trotzdem generieren? – maiermic
In einer perfekten Welt hätte RxCpp [install_befehl] (https://cmake.org/cmake/help/v3.6/command/install.html) verwendet, um ein CMake-Modul zu exportieren, das ein [importiertes Ziel] deklariert. (https://cmake.org/cmake/help/v3.6/command/add_library.html#imported-libraries). Sie sollten entweder den CMake von RxCpp ändern, um diesen hinzuzufügen (damit Sie die Installation vornehmen können), oder Sie können das importierte Ziel selbst in Ihrem Projekt erstellen. Du hast damit angefangen, die Bibliothek zu finden. Finde include-Verzeichnis mit ['find_path'] (https://cmake.org/cmake/help/v3.6/command/find_path.html) – wasthishelpful
Ich erwarte, dass alle benötigten Header-Dateien im Quellverzeichnis [' RxCpp/Rx /v2/src/rxcpp'](https://github.com/Reactive-Extensions/RxCpp/tree/master/Rx/v2/src/rxcpp). Ich habe dieses Verzeichnis nach '/ sw/RxCpp/2.3.0/include/rxcpp' kopiert. Jetzt muss ich 'find_library',' find_path' und dann 'add_library' (in der angegebenen Reihenfolge) aufrufen. Ist das richtig? – maiermic