AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1288365
Accepted
truf
truf
Asked: 2020-10-31 09:45:01 +0800 CST2020-10-31 09:45:01 +0800 CST 2020-10-31 09:45:01 +0800 CST

如果 cmake 找不到非强制性 c++ 功能支持,pbuilder-dist 会失败吗?

  • 772

我正在尝试根据本手册向我的 PPA 提交 deb:
https
://packaging.ubuntu.com/html/packaging-new-software.html 我可以bzr builddeb -- -nc -us -uc使用bzr builddeb -S. 但是pbuilder-dist groovy build myproject_0.2.8-1.dscin 的执行../build-area失败。
完整日志可在 pastebin 中找到:https ://pastebin.com/whr6Qsd1

我相信问题出在以下部分:

Determining if the CXX compiler accepts the flag -fno-keep-inline-dllexport failed with the following output:
Change Dir: /build/myapp-0.2.8/obj-x86_64-linux-gnu/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/gmake cmTC_3ab02/fast && gmake[1]: Entering directory '/build/myapp-0.2.8/obj-x86_64-linux-gnu/CMakeFiles/CMakeTmp'
/usr/bin/gmake -f CMakeFiles/cmTC_3ab02.dir/build.make CMakeFiles/cmTC_3ab02.dir/build
gmake[2]: Entering directory '/build/myapp-0.2.8/obj-x86_64-linux-gnu/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_3ab02.dir/DummyCXXFile.cxx.o
/usr/bin/c++    -std=c++0x -fno-keep-inline-dllexport   -o CMakeFiles/cmTC_3ab02.dir/DummyCXXFile.cxx.o -c /usr/share/cmake-3.16/Modules/DummyCXXFile.cxx
c++: error: command-line option '-fno-keep-inline-dllexport' is not supported by this configuration
gmake[2]: *** [CMakeFiles/cmTC_3ab02.dir/build.make:66: CMakeFiles/cmTC_3ab02.dir/DummyCXXFile.cxx.o] Error 1
gmake[2]: Leaving directory '/build/myapp-0.2.8/obj-x86_64-linux-gnu/CMakeFiles/CMakeTmp'
gmake[1]: *** [Makefile:121: cmTC_3ab02/fast] Error 2
gmake[1]: Leaving directory '/build/myapp-0.2.8/obj-x86_64-linux-gnu/CMakeFiles/CMakeTmp'



dh_auto_configure: error: cd obj-x86_64-linux-gnu && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu .. returned exit code 1
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

所以,cmake正在检查是否/usr/c++支持-fno-keep-inline-dllexport. 编译器以 1 bcs 结尾,它不支持它,cmake 返回 2 和 dh_auto_configure painics。

如果我cmake在我的系统上执行,我会得到以下标准输出:

-- Checking to see if CXX compiler accepts flag -ffunction-sections -fdata-sections -Wl,--gc-sections
-- Checking to see if CXX compiler accepts flag -ffunction-sections -fdata-sections -Wl,--gc-sections - yes
-- Checking to see if CXX compiler accepts flag -fno-keep-inline-dllexport
-- Checking to see if CXX compiler accepts flag -fno-keep-inline-dllexport - no
-- Checking to see if CXX compiler accepts flag -Werror=return-type
-- Checking to see if CXX compiler accepts flag -Werror=return-type - yes

所以即使是我系统上的编译器也不支持-fno-keep-inline-dllexport. 我很好。对我来说没关系。cmake不失败。

看起来,非强制特征检查失败会cmake破坏整个pbuilder-dist过程。有没有办法改变这种行为或者我错过了什么?

Ps 我的构建依赖是:debhelper-compat (= 13), cmake (>=2.8.9), gcc (>=4.6), qt5-qmake (>= 5.4), qtbase5-dev (>= 5.4), libtiff5-dev (>= 4.0.3), libjpeg8-dev (>= 8c), libpng-dev (>=1.6.2)

pbuilder bazaar deb cmake pbuilder-dist
  • 1 1 个回答
  • 142 Views

1 个回答

  • Voted
  1. Best Answer
    sancho.s ReinstateMonicaCellio
    2020-11-11T14:24:56+08:002020-11-11T14:24:56+08:00

    我不确定您的配置提示的确切问题。但是两种可能的解决方案是

    1. 更改-std=c++0x为-std=c++11.
    2. 删除选项-fno-keep-inline-dllexport。

    请检查您的配置文件,在哪里修改它。

    在此之前,您可以检查这些选项中的任何一个是否有效。转到父目录CMakeFiles并尝试在命令行复制失败的命令,并进行建议的修改:

    1. /usr/bin/c++ -std=c++11 -fno-keep-inline-dllexport -o CMakeFiles/cmTC_3ab02.dir/DummyCXXFile.cxx.o -c /usr/share/cmake-3.16/Modules/DummyCXXFile.cxx
    2. /usr/bin/c++ -std=c++0x -o CMakeFiles/cmTC_3ab02.dir/DummyCXXFile.cxx.o -c /usr/share/cmake-3.16/Modules/DummyCXXFile.cxx

    为此,您可能需要先调用cmake --debug-trycompile(source)。

    关于您的 pastebin 的注释(值得注意的消息,即使不一定有问题)和过程:

    1. 你有大量的ln: failed to create hard link '...' => '...': Invalid cross-device link消息。
    2. 报告了一个问题Qt5LinguistTools。也许在你做之前安装它是值得的。qttools5-dev
    3. 它报告Configuring incomplete, errors occurred!。值得检查可能的问题来源。
    4. 如果您指定您发出的命令的确切列表,包括发出每个命令的目录,这会很有帮助。
    5. “如果我cmake在我的系统上执行……”是什么意思?同上点。

    相关:

    https://stackoverflow.com/questions/19523412/qt-config-c11-but-std-c0x

    https://code-examples.net/en/q/129e754

    • 2

相关问题

  • 如何将“点文件”置于版本控制之下?

  • 集市的未来[关闭]

  • 如何在我的 pbuilder 构建中使用本地 .deb 文件?

  • bzr 中的 Ubuntu 打包

  • 用于cowbuilder构建的tmpfs?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve