将外部库"inside"项目中移动
Moving external libraries "inside" your project
假设我当前使用
target_link_libraries(...)
在我的CMakeLists.txt中,它要求库安装在我正在编译的计算机上,有没有办法在我的项目中移动这些外部库(例如,到libs/文件夹中(?
是的,但有多种方法。
我最喜欢的是在libs/
目录中实际安装这些库,这样结构看起来像这样:
- libs/
-lib1/
- include
- lib
-lib2/
- include
- lib
只需将库安装在项目的目录中即可完成:
# inside lib1/build
cmake .. -DCMAKE_INSTALL_PREFIX=~/my/project/libs/lib1
make install
然后,在您的项目中,您可以将前缀路径设置为libs/
目录:
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_SOURCE_PATH}/libs/")
# ...
find_package(lib1) # find the library in libs/lib1
其他方法是使用add_subdirectory
,并将项目源置于libs
中。你可以使用他们定义的目标,这样你就可以链接到他们。
相关文章:
- QTreeWidget 在移动项目时会回弹
- 如何有效地将(一些)项目从一个std::map移动到另一个std::map
- 将外部库"inside"项目中移动
- QListWidget 在用户选择项目时移动
- 如果我尝试将对话框从一个项目移动到另一个项目,我是否需要从 rc 文件中复制 DESIGNINFO、对话框信息和AFX_
- Qt 创建者在我将项目移动到另一个地方后仍然使用源项目
- 移动了 QT 项目,重命名文件夹和项目名称,Moc'ing 返回"'-I'之后缺少值"
- 将函数从控制台应用程序移动到共享库项目似乎会带来不相关的编译错误
- 将过滤器中的所有.cpp和.h移动到另一个项目并更正其文件夹位置
- 防止向量项目被移动
- 在项目中移动了文件,现在我找不到命名空间
- 移动 OpenCV Visual Studio 项目
- 在Visual Studio中,我不想提交我的Debug文件夹,但它中有dll文件,如果我移动它,项目将无法编译
- 将 Windows C++ 项目从 Qt4 移动到 5 会给出数百个看似无关的编译错误
- 如何有效地移动大量的图形项目
- 在列表框中向上或向下移动项目
- 用鼠标在QGraphicsView/QGraphicsScene上移动项目
- 对于C++项目,从Gradle移动到CMake
- 移动项目的平均值
- qt QAbstractItemModel 拖放用于移动项目执行删除/插入