我的电脑:
提前2.48.2snapd 2.48.2系列16ubuntu 20.04内核5.8.0-41-generic
这是我的yml:
name: someproject
version: '3.3.1.0'
base: core20
summary: "someproject: asdfasdf"
description: |
someproject asdfasdf.
grade: devel
confinement: strict
apps:
someprojectd:
daemon: forking
command: |
someprojectd-wrapper --detach --data-dir ${SNAP_COMMON} --config-file ${SNAP_USER_DATA}/etc/someprojectd.conf
plugs:
- network
- network-bind
someproject-wallet-rpc:
command: |
someproject-wallet-rpc --log-file ${SNAP_USER_DATA}
plugs:
- home
- network
- network-bind
someproject-wallet-cli:
command: |
someproject-wallet-cli --log-file ${SNAP_USER_DATA}
plugs:
- home
- network
parts:
cmake-build:
plugin: cmake
cmake-parameters:
- -DBDB_STATIC=1
- -DUPNP_STATIC=1
- -DBoost_USE_STATIC_LIBS=1
- -DBoost_USE_STATIC_RUNTIME=1
- -DARCH=default
source: .
build-packages:
- gcc
- pkg-config
- libunbound-dev
- libevent-dev
- libboost-all-dev
- libdb-dev
- libunwind-dev
- libminiupnpc-dev
- libldns-dev
- libexpat1-dev
- bison
- doxygen
- graphviz
stage-packages:
- libminiupnpc17
- libunbound8
- libunwind8
prime:
- bin
- usr/lib/
- -usr/lib/gcc
- -usr/share
dist-files:
plugin: dump
source: .
organize:
contrib/snap/someprojectd.conf: etc/someprojectd.conf
contrib/snap/someprojectd-wrapper: bin/someprojectd-wrapper
prime:
- etc
- bin
我收到的错误是:
cmake/root/parts/cmake-build/src/-G Unix Makefiles -DBDB_STATIC=1-DUPNP_STATIC=1 -DBoost_USE_STATIC_LIBS=1 -DBoost_USE_STATIC_RUNTIME=1 -DARCH=default CMake错误:当前CMakeCache.txt目录/root/parts/CMake -build/src/CMakeCache.txt与创建CMakeCache.txt的目录/home/chris/etnsnap。这可能导致在错误的位置创建二进制文件。如果你是不确定,请重新编辑CMakeCache.txt。
建议的解决方案:检查构建日志并确保部件配置和源代码正确
我知道如何在本地环境中解决这个问题;其他帖子已经做了关于如何做到这一点,我很高兴在当地建立。然而,这似乎是Snapcraft本身的问题。似乎cmakecache.txt首先在本地环境中生成,然后在vm中完成其他所有操作,从而导致冲突。我以前从来没遇到过这个问题。有人有什么想法吗?由于
与错误状态一样,源目录中有一个过时的CMakeCache.txt
。在运行snapcraft
之前,需要将其移除。理想情况下,您的源代码树中根本不会有任何构建时临时文件。这意味着删除您在主机上使用的任何build
目录。您还应该删除任何CMakeCache.txt
文件和任何CMakeOut.txt
文件。不要删除任何CMakeLists.txt
文件或*.cmake
文件,这些文件对于从源代码构建非常重要。