Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将RxCpp库添加到cmake项目_C++_Linux_C++11_Gcc_Cmake - Fatal编程技术网

C++ 将RxCpp库添加到cmake项目

C++ 将RxCpp库添加到cmake项目,c++,linux,c++11,gcc,cmake,C++,Linux,C++11,Gcc,Cmake,我希望在Linux(gcc)上使用,但我很难将RxCpp库适当地添加到我的项目中。我按照克隆和构建说明运行: 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++ -D

我希望在Linux(gcc)上使用,但我很难将RxCpp库适当地添加到我的项目中。我按照克隆和构建说明运行:

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
我试图运行
makeinstall
,但得到:

make: *** No rule to make target 'install'.  Stop.
然后,我注意到构建目录中的文件
libRxCpp.so
,并复制了它:

cp libRxCpp.so /sw/RxCpp/2.3.0/
我在中创建了一个新项目,它使用cmake并修改了
CMakeLists.txt
,如下所示:

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})
find_library(RxCpp_Lib NAMES libRxCpp.so PATHS ${RxCpp_Lib_PATH})

set(SOURCE_FILES main.cpp)
add_executable(RxCpp_Example ${SOURCE_FILES})

target_link_libraries(RxCpp_Example ${RxCpp_Lib})
但是,我在更新cmake项目(或在终端中运行cmake)时出错:


我做错了什么?如何将RxCpp库添加到我的cmake项目中?

在使用
add\u executable
创建目标之前,您调用了
target\u link\u库。按如下方式更改您的cmake文件:

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})
find_library(RxCpp_Lib NAMES libRxCpp.so PATHS ${RxCpp_Lib_PATH})

set(SOURCE_FILES main.cpp)
add_executable(RxCpp_Example ${SOURCE_FILES})

target_link_libraries(RxCpp_Example ${RxCpp_Lib})

非常感谢。如何包含RxCpp的头文件?没有目录
include
。我可以生成它吗?在一个完美的世界中,RxCpp会用来导出声明了。您应该修改RxCpp的cmake以添加此项(以便能够进行安装),或者在项目中自己创建导入的目标。你从找到图书馆开始。使用查找include目录我希望所有需要的头文件都在源目录中。我将此目录复制到
/sw/RxCpp/2.3.0/include/RxCpp
。现在我必须调用
find_library
find_path
,然后
add_library
(按上述顺序)。这是正确的吗?这是正确的:)
add_library
类似于
add_library(RxCpp共享导入)
然后调用
set_target_properties(RxCpp properties IMPORTED_LOCATION${RxCpp_Lib}包括目录${RxCpp_Inc})
。然后使用
target\u link\u库(RxCpp\u示例RxCpp)
。cmake运行时没有错误,但当我尝试构建正式的
RxCpp/rx时,找不到.hpp