我正在处理Linux上用CMake构建的一个大型C++项目.CMake运行正常,在模块和应用程序树中生成了大量makefile.运行GNU make会导致链接器错误.在运行命令之前,我如何获得make来打印出准确的命令?

-d选项不打印命令,但有大量没有帮助的信息.

n选项会打印所有命令,但不会运行它们,因此我无法确定问题到底出在哪里.判断make-n中的stdout,我没有看到任何相关的命令.我怀疑一些命令会根据早期命令的结果而改变,而Makefiles的层次 struct 使得很难判断到底发生了什么.

在make的man页中,我看不到任何其他似乎有用的选项.

推荐答案

我确信这会奏效:

make VERBOSE=1

你也应该能够将其添加到你的CMakeLists中.要永久设置:

set(CMAKE_VERBOSE_MAKEFILE on)

这一点在CMake FAQ页中有介绍.

Linux相关问答推荐

如何确定Linux上的最大静态TLS(线程本地存储)块大小?

仅使用Find搜索32字符长的目录

如何过滤 Bash 的正则表达式(Linux)中的所有值,除了一个?

我可以在不调用 shell 的情况下使用 popen() 吗?在 C++ 中

Qt会泄漏内存吗?

在 bash 中解析变量

使用带有 gnome-keyring 的 Git 凭证助手作为 Sudo 时出错

如何使用 gcc 编译为程序集

如何在不包括可用空间的情况下创建光盘(sd 卡)的 .IMG 映像?

polkitd未注册身份验证代理的解释

如何使用 Ansible 等待服务器重启?

发出信号并中断比较

为什么`du`的输出通常与`du -b`如此不同

根据日期范围过滤日志(log)文件条目

如何显示正在运行的进程列表 Python?

给定一个 linux 用户名和密码,我如何测试它是否是有效帐户?

命令行 Arduino 编译和上传?

如何将所有文件从一个目录移动(和覆盖)到另一个目录?

Bash 将 awk 的输出捕获到数组中

libaio.so.1:无法打开共享对象文件