c++ - 将 RxCpp 库添加到 cmake 项目中

标签 c++ linux c++11 gcc cmake

我想使用RxCpp在 Linux (gcc) 上,但我无法将 RxCpp 库适本地添加到我的 cmake 中项目。我遵循克隆和构建说明并运行:

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

我尝试运行 make install 但得到:

make: *** No rule to make target 'install'.  Stop.

然后,我注意到构建目录中的文件 libRxCpp.so 并将其复制:

cp libRxCpp.so /sw/RxCpp/2.3.0/

我在 Clion 创建了一个新项目,它使用 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})

但是,在更新 cmake 项目(或在终端中运行 cmake)时出现错误:

CMake Error at CMakeLists.txt:9 (target_link_libraries):
  Cannot specify link libraries for target "RxCpp_Example" which is not built
  by this project.

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

最佳答案

您在使用 add_executable 创建目标之前调用了 target_link_libraries。像这样更改您的 cmake 文件:

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})

关于c++ - 将 RxCpp 库添加到 cmake 项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39915808/

相关文章:

c++ - 在没有 goto 和提前返回的情况下在 C++ 中执行多个相关错误检查的优雅方法?

linux - 在 shell 脚本中发送包含多个文件的邮件

c++ - 共享相同成员的两个 C++ 类的内存布局

c++ - gcc 预处理器 : can I resolve #if[def]s only, 保留其他指令不变?

c++ - fork() 并释放所有分配的内存

c++ - 在模板类之外的容器类型上编写模板化成员函数

c++ - 从可变参数模板创建 std::array

c++ - 为什么编译代码 "foo::foo::foo::foob"?

c++ - 从多个文件编译得到 “undefined reference”

linux - 引导时可以让NFS共享我的根吗?