英文:
cmake with bitbake and specific install directory
问题
I have an issue with installing my target to a specific directory by use of cmake managed build and bitbake (yocto).
在使用CMake管理构建和bitbake(Yocto)时,我遇到了一个将目标安装到特定目录的问题。
At CMakeLists.txt, I want to use the install() section to deploy my target to the specific directory e.g. /my/specific/directory
.
在CMakeLists.txt中,我想使用install()部分将我的目标部署到特定目录,例如/my/specific/directory
。
At CMakeLists.txt this looks like:
install(TARGETS "${PROJECT_NAME}" RUNTIME DESTINATION my/specific/directory)
.
So, there would be no need at the bitbake recipe to implement an install section.
在CMakeLists.txt中,它看起来像这样:
install(TARGETS "${PROJECT_NAME}" RUNTIME DESTINATION my/specific/directory)
。
因此,在bitbake配方中不需要实现install部分。
By default, the cmake uses a prefix
which derives from bitbake.conf and points to /usr
. Therefore my target is installed to /usr/my/specific/directory
.
默认情况下,CMake使用从bitbake.conf派生的prefix
,并指向/usr
。因此,我的目标被安装到/usr/my/specific/directory
。
At cmake documentation I have found to possibilities to modify the prefix:
- Set the environment variable
DESTDIR
to overwrite the prefix - use
cmake --install . --prefix /my/install/prefix
在CMake文档中,我发现了两种修改前缀的可能性:
- 设置环境变量
DESTDIR
以覆盖前缀 - 使用
cmake --install . --prefix /my/install/prefix
In both cases I have no idea, how I have to implement this at the bitbake recipe that this would have an effect, when the do_install
task is executed.
在这两种情况下,我不知道如何在bitbake配方中实现这一点,以使其在执行do_install
任务时产生影响。
Has anyone of you a hint here?
你们中有人有提示吗?
英文:
I have an issue with installing my target to a specific directory by use of cmake managed build and bitbake (yocto).
At CMakeLists.txt, I want to use the install() section to deploy my target to the specific directory e.g. /my/specific/directory
.
At CMakeLists.txt this looks like:
install(TARGETS "${PROJECT_NAME}" RUNTIME DESTINATION my/specific/directory)
.
So, there would be no need at the bitbake recipe to implement an install section.
By default, the cmake uses a prefix
which derives from bitbake.conf and points to /usr
. Therefore my target is installed to /usr/my/specific/directory
.
At cmake documentation I have found to possibilities to modify the prefix:
- Set the environment variable
DESTDIR
to overwrite the prefix - use
cmake --install . --prefix /my/install/prefix
In both cases I have no idea, how I have to implement this at the bitbake recipe that this would have an effect, when the do_install
task is executed.
Has anyone of you a hint here?
答案1
得分: 3
在你的BitBake配方中,你应该能够设置EXTRA_OECMAKE来传递选项给CMake,例如 EXTRA_OECMAKE= "--install-prefix /mydir"
。
但是,如果出现关于“Files/directories were installed but not shipped in any package:”的错误,你可以通过以下方式设置BitBake来安装这些文件:
FILES:${PN} = "/mydir"
(对于旧版本的Yocto,可以使用FILES_${PN}
)。参见这里。
可能还有其他方法来实现相同的目标,我发现#yocto IRC频道可能会非常有帮助。
英文:
In your bitbake recipe you should be able to set EXTRA_OECMAKE to pass options to cmake e.g. EXTRA_OECMAKE= "--install-prefix /mydir"
.
But then with errors regarding Files/directories were installed but not shipped in any package:
you can set bitbake to install the files by using:
FILES:${PN} = "/mydir"
(Or FILES_${PN}
for older versions of Yocto). See here.
There may be other ways to achieve the same thing, the #yocto IRC channel can be quite helpful I find.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论