- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 CMakeLists.txt
之一中有以下代码:
FIND_PACKAGE(sphinxbase)
if (${SPHINXBASE_FOUND})
INCLUDE_DIRECTORIES(${SPHINXBASE_INCLUDE_DIR}/sphinxbase/)
else ()
ExternalProject_Add(
sphinxbase
GIT_REPOSITORY "https://github.com/cmusphinx/sphinxbase.git"
GIT_TAG "e34b1c632392276101ed16e8a05862e43f038a7c"
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/sphinxbase
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/sphinxbase/autogen.sh
BUILD_COMMAND ${MAKE}
UPDATE_COMMAND ""
INSTALL_COMMAND ""
BUILD_IN_SOURCE ON
LOG_DOWNLOAD ON
LOG_UPDATE ON
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_TEST ON
LOG_INSTALL ON
)
ExternalProject_Get_Property(sphinxbase SOURCE_DIR)
ExternalProject_Get_Property(sphinxbase BINARY_DIR)
SET(SPHINXBASE_SOURCE_DIR ${SOURCE_DIR})
SET(SPHINXBASE_BINARY_DIR ${BINARY_DIR})
SET(SPHINXBASE_LIBRARIES ${SPHINXBASE_BINARY_DIR}/src/libsphinxbase/.libs/libsphinxbase.a)
INCLUDE_DIRECTORIES(${SPHINXBASE_SOURCE_DIR}/include)
endif ()
SET(DEPENDENCIES ${DEPENDENCIES} sphinxbase)
SET(LIBS ${LIBS} ${SPHINXBASE_LIBRARIES})
install(TARGETS ${LIBS}
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
OPTIONAL
)
install(TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION bin
)
CMake Error at CMakeLists.txt:197 (install):
install TARGETS given target
"/Users/syb0rg/Dropbox/Development/Khronos/Khronos/lib/sphinxbase/src/libsphinxbase/.libs/libsphinxbase.a"
which does not exist in this directory.
最佳答案
命令流 install(TARGETS)
安装使用 add_executable
创建的目标或 add_library
命令。对于安装具体文件,您需要使用命令流 install(FILES)
.
您可以按原样安装子项目,而不是从子项目的构建目录中安装选定的文件。为此,您可以使用
make DESTDIR=<...> install
INSTALL
ExeternalProject_Add
的选项.此命令将安装
整个子项目进入以
DESTDIR
给出的目录make 的参数(有关此参数的更多信息可以在
here 中找到)。
install(DIRECTORY)
一次安装所有子项目文件的命令:
# It is better to use binary directory for download or build 3d-party project
set(sphinxbase_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/lib/sphinxbase)
# This will be used as DESTDIR on subproject's `make install`.
set(sphinxbase_DESTDIR ${CMAKE_CURRENT_BINARY_DIR}/lib/sphinxbase_install)
ExternalProject_Add(
sphinxbase
GIT_REPOSITORY "https://github.com/cmusphinx/sphinxbase.git"
GIT_TAG "e34b1c632392276101ed16e8a05862e43f038a7c"
SOURCE_DIR ${sphinxbase_SOURCE_DIR}
# Specify installation prefix for configure.sh (autogen.sh).
CONFIGURE_COMMAND ./autogen.sh --prefix=${CMAKE_INSTALL_PREFIX}
BUILD_COMMAND ${MAKE}
UPDATE_COMMAND ""
# Fake installation: copy installed files into DESTDIR.
INSTALL_COMMAND make DESTDIR=${sphinxbase_DESTDIR} install
...
)
# Actually install subproject.
install(DIRECTORY ${sphinxbase_DESTDIR}/ DESTINATION "/")
DESTINATION
.这是因为
sphinxbase_DESTDIR
下的文件目录已根据
CMAKE_INSTALL_PREFIX
定位, 传递为
--prefix
选项
configure.sh
(在给定的情况下
autogen.sh
)。
--prefix
给出),您可以使主项目安装更易于打包:
install(DIRECTORY ${sphinxbase_DESTDIR}/${CMAKE_INSTALL_PREFIX}/ DESTINATION ".")
DESTINATION
选项,项目将正确支持打包。例如,
make DESTDIR=<...> install
也适用于主要项目。
ExternalProject_Add
用于构建 CMake 子项目,在该子项目中创建的目标不会被主项目看到。
关于build - 使用 CMake 安装 ExternalProject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35934112/
我正在尝试使用 ExternalProject模块: ExternalProject_Add( googlebenchmark GIT_REPOSITORY "htt
我正在尝试使用 ExternalProject模块: ExternalProject_Add( googlebenchmark GIT_REPOSITORY "htt
我正在使用 CMake 构建跨平台(例如 Linux/Windows)应用程序,该应用程序还使用第三方库作为外部项目。 我知道 MSVC 是一个多配置环境,因此不使用 CMAKE_BUILD_TYPE
我正在使用 Cmake 构建一个项目并使用 FetchContent 来管理依赖项。由于多种原因,我不能依赖系统范围内安装的包,所以这个包有很大帮助。它允许我做这样的事情: cmake_minimum
假设我有以下具有这些依赖项的项目设置: MainProject ├─ Dependency_1 │ └─ Dependency_2 └─ Dependency_2 这些依赖关系在 MainProje
在 ExternalProject_Add cmake 的文档,它提到设置 EP_BASE属性(property)。我已经尝试使用 set 设置它关键字,但它似乎不起作用。 ExternalProje
我正在构建 Google 的 FlatBuffers 作为我自己项目的依赖项,我需要在构建时编译一个模式。我不想使用 BuildFlatBuffers.cmake或 FindFlatBuffers.c
我正在尝试创建一个 super 构建来编译依赖项(zlib、nifticlib 和 boost),然后根据所有这些库编译我的项目。 这是我的 CMakeLists: cmake_minimum_req
当安装目标困惑时,引用 ExternalProjects 可能会很痛苦。因此,在为给定项目生成主项目文件之前,可能需要构建和安装一次 ExternalProjects。 CMake 是否可行以及如何实
当安装目标困惑时,引用 ExternalProjects 可能会很痛苦。因此,在为给定项目生成主项目文件之前,可能需要构建和安装一次 ExternalProjects。 CMake 是否可行以及如何实
构建 CMake 项目时(例如在 Windows 上),我可以通过执行以下命令来执行并行构建: cmake --build . -- /m /m 开关被传递到 msbuild,我得到了并行构建。但是,
我的 CMakeLists.txt 之一中有以下代码: FIND_PACKAGE(sphinxbase) if (${SPHINXBASE_FOUND}) INCLUDE_DIRECTORIE
两天前,我添加了一个外部项目来使用autotools编译一个项目。直到今天为止它一直运行良好...... 我有一个奇怪的错误: CMake Error at /usr/share/cmake-2.8/
我有一个外部项目,它提供了我想用来构建可执行文件的源文件。我目前有如下内容: ExternalProject(myproj) add_executable(myexecutable source.c)
我正在尝试创建一个 CMakeLists,它会自动下载和编译一个库,并将它链接到 Windows 和 Linux 上的另一个项目。为此,我使用了 ExternalProject_Add。下载和编译部分
我已经(大部分)成功地为 googletest 设置了 ExternalProject_Add。但是,我注意到诸如我选择的 C++ 编译器、构建类型等内容不会自动转发到 ExternalProject
我正在尝试使用 ExternalProject_Add 将外部项目作为库添加到我的项目中: ExternalProject_Add( xgboost GIT_REPOS
我正在尝试将现有的 native 库用作 android 项目的一部分。我按照有关将 C 和 C++ 代码添加到 android studio 项目的说明进行操作。我到了我有一个正常工作的 CMake
我有一个具有稍微复杂的构建过程的应用程序,作为 CMake 的新手,我想知道是否有人可以为我提供任何指示。 默认情况下,该应用程序由单个可执行文件组成,该可执行文件是根据 src 和包含文件夹中提供的
我正在处理的项目依赖于 Eigen3。以前,我只是让最终用户在配置步骤中手动指定 Eigen3 header 的路径,但这变得很麻烦,我想从用户身上承担一些责任。我已经设置了一个 CMake 外部项目
我是一名优秀的程序员,十分优秀!