问题标签 [cmakelists-options]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
111 浏览

c - 将 CFLAGS="-std=gnu90" 添加到 CMakeLists.txt 会导致找不到文件“-std=gnu90”的错误

我正在尝试构建一个包含 UCL 的项目,据我所知,这里的错误可以通过设置std=gnu90UCL 项目来解决。

但是,为 C 版本添加标志会导致错误,指出找不到文件。需要修复什么?

我试图添加set(UCL_CFLAGS "-std=GNU90")到处理这个项目的块中,但是在 config.log 中我看到 UCL_CFLAGS 变量仍然是空的。

我以此作为参考: https ://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/ucl

Cmakelist 和项目位于此处:https ://github.com/quarkslab/legu_unpacker_2019/blob/master/pylegu/CMakeLists.txt

0 投票
1 回答
395 浏览

linux - 将环境变量设置为 ExternalProject_Add 上下文

我有一个 CMakeLists.txt 文件,其中有多个我需要构建的外部项目。我正在使用 CMake 的 ExternalProject_Add 功能。

我需要在 ExternalProject_Add 项目模块之一中设置环境变量。该项目需要它来执行构建。

我尝试使用 ${CMAKE_COMMAND} -E env 选项,但没有奏效:

我无法在网上找到示例。

请指教。

提前感谢您的帮助。

副部

0 投票
1 回答
328 浏览

c - CMakelists.txt;嵌套文件夹头文件未找到错误

我有以下文件夹结构:

在文件 demo_main\demo_use\demo_use_main.c 中,我需要调用位于另一个文件夹中的 HelloWorld.cpp 中定义的函数。

但是在编译时出现错误:

我的 Cmakelists.txt 看起来像:

demo_use_main.c 找不到头文件是缺少什么?如何纠正它?

0 投票
1 回答
739 浏览

xcode - 如何在cmake中设置xcode的newbuild系统?

我正在尝试将我的项目升级到新的构建系统。我必须在 cmakelists.txt 文件中设置 -UseModernBuildSystem=YES。我怎样才能做到这一点?我的项目是使用终端构建的

0 投票
0 回答
84 浏览

c++ - 如何让 CMakeLists.txt 调用外部项目(Makefile)上的干净目标?

我正在安装一些需要通过 CMake 编译和安装的固件,这是通过 CMakeLists.txt 中的 ExternalProject_Add 完成的。

这就是我在 CMakeLists.txt 中的内容

这按预期工作,但是当我需要调用 cmake clean 时,外部项目的二进制文件不会被清理,并且在再次编译时会导致问题。有没有办法手动将 Makefile 清理目标添加到 CMakeLists.txt?

0 投票
1 回答
477 浏览

c++ - 如何将 cmake 变量转换为 C++ 代码中的字符串?

例如,在 CMakeLists.txt 中,我可以定义路径:

在 C++ 代码中,我可以通过

这工作正常。现在,如果我改为在 CMakeLists.txt 中定义一个变量,如下所示:

然后,我收到以下错误:

那么,为什么会有所不同呢?如何将 cmake 变量转换为 C++ 代码中的字符串?

0 投票
0 回答
665 浏览

c++ - FFmpeg - Libavcodec - 无法编译,未找到文件错误,但文件存在

这不是关于 C++,而是更多关于特定编译 avcodec 和 avformat 的内容,因为它们在FFmpeg中使用。我正在尝试第一次编译ffmpeg项目代码。所有链接都已解决,程序错误我们。

我正在编写我的第一个程序 - 尝试在我的 C++ 代码中使用 avformat 库。此行的链接器错误:

这是我的* libavcodec.pc文件的内容,它有一个冲突条目:它列出了clang 找不到的所有项目,我不知道它们是否以某种方式链接。我发现一个来源指出,如果我有其他 ffmpeg 分支,则会出现类似的错误,但我没有。

我没有cmakefile的经验,如果需要我可以在这里粘贴。非常感谢任何帮助,因为过去几天我都被困住了。

我有两个 CMakeLists:

以及FFmpeg子目录下FFmpeg的接口:

我还尝试在 target_link_libraries 下添加以下块,但编译结果没有区别:

0 投票
1 回答
88 浏览

c++ - main.cpp 未检测到添加到 CMakeLists.txt 的子目录

我正在使用 Pybind11 创建与 c++ 代码的 python 绑定。我的项目架构如下:

我想要做的,是#include <myCPPCode/MyCodeDefinitions.h>MyModule.cpp.

为了做到这一点,我在全局中添加CMakeLists.txt了以下命令:add_subdirectory(lib/myCPPCode),但它不起作用,因为我不知道要放入什么lib/myCPPCode/CMakeLists.txt,并且我收到以下错误:

的内容lib/myCPPCode/CMakeLists.txt如下:

我应该如何配置我的CMakeLists.txtand lib/myCPPCode/CMakeLists.txt

先感谢您!

0 投票
1 回答
62 浏览

c++ - 我收到此错误致命错误: Scintilla.h: No such file or directory when loading scintilla library

我从这里克隆了 scintilla https://github.com/mirror/scintilla 我已经构建了 scintilla GTK+/Linux 版本,现在在 bin 文件夹中生成了 scintilla.a。我在我的 CMAkeList.txt 文件中处理了这个库,但是当我构建我的应用程序,我收到此错误“致命错误:Scintilla.h:没有这样的文件或目录”[build] 4 | #include <Scintilla.h>

所以我不知道为什么它找不到 scintilla.h ...我应该在我的 cmakelists.txt 文件中添加更多内容吗?...当我包含这一行时 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/scintilla/include) ,我得到一堆新的错误,例如:

这就是我的 cmakelists.txt 文件的样子:

如果你能告诉我如何解决这个问题,我将不胜感激

0 投票
1 回答
170 浏览

c++ - CMake 包括外部和自己的标头

我有一个 CMakelist.txt,我在其中添加了外部头文件和库。我的构建文件。现在,当我在我的主函数中调用自定义标头(“myown.h”)时,我在运行 CMake 链接时遇到错误。

所以我发现我必须将我自己的头文件和.cpp 添加到带有 add_library 的库中,然后将它们添加到 target_link_libraries 下。

但是,只要我想从我自己的标头中调用代码,我就会在构建时遇到链接错误。

有谁知道错误在哪里或我该如何继续?这是我的 CMakelist:

更新:

通过 CMakelist.txt 中的这些更改,您可以构建程序,但是在更改 src 代码或清理 CMake 项目后,将再次出现链接错误。

更改了 CMakelist:

这是详细的输出:

Der Buildvorgang wurde am 01.11.2020 16:19:04 gestartet。Projekt "C:\Projekte\Cpp\dev\Miele_Oculus\build\ALL_BUILD.vcxproj" auf Knoten "1" (Standardziele)。Das Projekt "C:\Projekte\Cpp\dev\Miele_Oculus\build\ALL_BUILD.vcxproj" (1) erstellt "C:\Projekte\Cpp\dev\Miele_Oculus\b uild\ZERO_CHECK.vcxproj" (2) auf Knoten "1 “(标准)。InitializeBuildStatus:“x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild”wird erstellt,da“AlwaysCreate”angegeben wurde。CustomBuild: Alle Ausgaben sind aktuell。FinalizeBuildStatus:Die Datei "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" wird gelöscht。在“x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate”中查看时间戳。Die Erstellung von Projekt "C:

Das Projekt "C:\Projekte\Cpp\dev\Miele_Oculus\build\ALL_BUILD.vcxproj" (1) erstellt "C:\Projekte\Cpp\dev\Miele_Oculus\b uild\MIELE_OCULUS.vcxproj" (3) auf Knoten "1 “(标准)。Das Projekt "C:\Projekte\Cpp\dev\Miele_Oculus\build\MIELE_OCULUS.vcxproj" (3) erstellt "C:\Projekte\Cpp\dev\Miele_Oculu s\build\mylib.vcxproj" (4) auf Knoten "1 “(标准)。InitializeBuildStatus:“mylib.dir\Debug\mylib.tlog\unsuccessfulbuild”wird erstellt,da“AlwaysCreate”angegeben wurde。CustomBuild: Alle Ausgaben sind aktuell。VcpkgTripletSelection:使用来自 "C:\Projekte\Cpp\dev\vcpkg\installed\x64-windows" 的三元组 "x64-windows" ClCompile: Alle Ausgaben sind aktuell。Lib: Alle Ausgaben sind aktuell。mylib.vcxproj -> C: \Projekte\Cpp\dev\Miele_Oculus\build\Debug\mylib.lib AppLocalFromInstalled: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -noprofile -File "C:\Projekte\Cpp\d ev\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "C:\Projekte\Cpp\dev\Miele_Oculus\build\Debug\mylib.lib" "C:\Projekte\Cpp\dev\vcpkg\installed\x64 -windows\debug\bin" "mylib.dir\Debug\mylib.tlog\mylib.write.1u.tlog" "mylib.dir\Debug\vcpkg.applocal.log" FinalizeBuildStatus: Die Datei "mylib.dir\Debug\ mylib.tlog\unsuccessfulbuild” wird gelöscht。将时间戳用于“mylib.dir\Debug\mylib.tlog\mylib.lastbuildstate”。Die Erstellung von Projekt "C:\Projekte\Cpp\dev\Miele_Oculus\build\mylib.vcxproj" ist abgeschlossen (Standardziele)。lib AppLocalFromInstalled: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -noprofile -File "C:\Projekte\Cpp\d ev\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" " C:\Projekte\Cpp\dev\Miele_Oculus\build\Debug\mylib.lib" "C:\Projekte\Cpp\dev\vcpkg\installed\x64-windows\debug\bin" "mylib.dir\Debug\mylib .tlog\mylib.write.1u.tlog" "mylib.dir\Debug \vcpkg.applocal.log" FinalizeBuildStatus: Die Datei "mylib.dir\Debug\mylib.tlog\unsuccessfulbuild" wird gelöscht。将时间戳用于“mylib.dir\Debug\mylib.tlog\mylib.lastbuildstate”。Die Erstellung von Projekt "C:\Projekte\Cpp\dev\Miele_Oculus\build\mylib.vcxproj" ist abgeschlossen (Standardziele)。lib AppLocalFromInstalled: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -noprofile -File "C:\Projekte\Cpp\d ev\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" " C:\Projekte\Cpp\dev\Miele_Oculus\build\Debug\mylib.lib" "C:\Projekte\Cpp\dev\vcpkg\installed\x64-windows\debug\bin" "mylib.dir\Debug\mylib .tlog\mylib.write.1u.tlog" "mylib.dir\Debug \vcpkg.applocal.log" FinalizeBuildStatus: Die Datei "mylib.dir\Debug\mylib.tlog\unsuccessfulbuild" wird gelöscht。将时间戳用于“mylib.dir\Debug\mylib.tlog\mylib.lastbuildstate”。Die Erstellung von Projekt "C:\Projekte\Cpp\dev\Miele_Oculus\build\mylib.vcxproj" ist abgeschlossen (Standardziele)。exe -ExecutionPolicy 绕过 -noprofile -File "C:\Projekte\Cpp\dev\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "C:\Projekte\Cpp\dev\Miele_Oculus\build\Debug\mylib.lib " "C:\Proj ekte\Cpp\dev\vcpkg\installed\x64-windows\debug\bin" "mylib.dir\Debug\mylib.tlog\mylib.write.1u.tlog" "mylib.dir\Debug\ vcpkg.applocal.log" FinalizeBuildStatus: Die Datei "mylib.dir\Debug\mylib.tlog\unsuccessfulbuild" wird gelöscht。将时间戳用于“mylib.dir\Debug\mylib.tlog\mylib.lastbuildstate”。Die Erstellung von Projekt "C:\Projekte\Cpp\dev\Miele_Oculus\build\mylib.vcxproj" ist abgeschlossen (Standardziele)。exe -ExecutionPolicy 绕过 -noprofile -File "C:\Projekte\Cpp\dev\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "C:\Projekte\Cpp\dev\Miele_Oculus\build\Debug\mylib.lib " "C:\Proj ekte\Cpp\dev\vcpkg\installed\x64-windows\debug\bin" "mylib.dir\Debug\mylib.tlog\mylib.write.1u.tlog" "mylib.dir\Debug\ vcpkg.applocal.log" FinalizeBuildStatus: Die Datei "mylib.dir\Debug\mylib.tlog\unsuccessfulbuild" wird gelöscht。将时间戳用于“mylib.dir\Debug\mylib.tlog\mylib.lastbuildstate”。Die Erstellung von Projekt "C:\Projekte\Cpp\dev\Miele_Oculus\build\mylib.vcxproj" ist abgeschlossen (Standardziele)。"C:\Proj ekte\Cpp\dev\vcpkg\installed\x64-windows\debug\bin" "mylib.dir\Debug\mylib.tlog\mylib.write.1u.tlog" "mylib.dir\Debug \vcpkg .applocal.log" FinalizeBuildStatus: Die Datei "mylib.dir\Debug\mylib.tlog\unsuccessfulbuild" wird gelöscht。将时间戳用于“mylib.dir\Debug\mylib.tlog\mylib.lastbuildstate”。Die Erstellung von Projekt "C:\Projekte\Cpp\dev\Miele_Oculus\build\mylib.vcxproj" ist abgeschlossen (Standardziele)。"C:\Proj ekte\Cpp\dev\vcpkg\installed\x64-windows\debug\bin" "mylib.dir\Debug\mylib.tlog\mylib.write.1u.tlog" "mylib.dir\Debug \vcpkg .applocal.log" FinalizeBuildStatus: Die Datei "mylib.dir\Debug\mylib.tlog\unsuccessfulbuild" wird gelöscht。将时间戳用于“mylib.dir\Debug\mylib.tlog\mylib.lastbuildstate”。Die Erstellung von Projekt "C:\Projekte\Cpp\dev\Miele_Oculus\build\mylib.vcxproj" ist abgeschlossen (Standardziele)。

InitializeBuildStatus: Aktualisieren des Timestamps von "MIELE_OCULUS.dir\Debug\MIELE_OCULUS.tlog\unsuccessfulbuild"。CustomBuild: Alle Ausgaben sind aktuell。VcpkgTripletSelection:使用来自 "C:\Projekte\Cpp\dev\vcpkg\installed\x64-windows" 的三元组 "x64-windows" ClCompile: Alle Ausgaben sind aktuell。链接:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX64\x64\link.exe /ERR ORREPORT:QUEUE /OUT:"C:\ Projekte\Cpp\dev\Miele_Oculus\build\Debug\MIELE_OCULUS.exe" /INCREMENTAL /NOLOGO /LIBPATH:"C: /Projekte/Cpp/dev/vcpkg/installed/x64-windows/lib" /LIBPATH:"C:/ Projekte/Cpp/dev/vcpkg/installed/x64-windows/lib/Debug" /LIBPATH:C:/Program /LIBPATH:C:/Program/Debug /LIBPATH:C:/Projekte/Cpp/dev/Miele_Oculus/Files /LIBPATH:C: lib oleaut32.lib uuid.lib comdlg32.lib ib advapi32.lib "C:\Projekte\Cpp\dev\vcpkg\installed\x64-windows\debug\lib*.lib" /MANIFEST /MANIFESTUAC:"level='asIn voker 'uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:/Projekte/Cpp/dev/Miele_Oculus/build/Debug/MIELE_OCULUS.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB :"C:/Projekte/Cpp/dev/Miele_Oculus/build/Debug/MIELE_OCULUS .lib" /MACHINE:X64 /machine:x64 MIELE_OCULUS.dir\Debug\main.obj 链接:致命错误 LNK1104: Datei "C:\Projekte \Cpp\dev\Miele_Oculus\build\Debug\MIELE_OCULUS.exe" [C:\Projekte\Cpp\dev\Miele_Oculus\build\MIELE_OCULUS.vcxproj] Die Erstellung des Projekts "C:\Projekte\Cpp\dev\Miele_Oculus\build\MIELE_OCULUS.vcxproj" ist abgeschlossen (Standardzi ele) -- FEHLER。

Die Erstellung des Projekts "C:\Projekte\Cpp\dev\Miele_Oculus\build\ALL_BUILD.vcxproj" ist abgeschlossen (Standardziele) -- FEHLER。

Fehler beim Buildvorgang。

"C:\Projekte\Cpp\dev\Miele_Oculus\build\ALL_BUILD.vcxproj" (Standardziel) (1) -> "C:\Projekte\Cpp\dev\Miele_Oculus\build\MIELE_OCULUS.vcxproj" (Standardziel) (3) -> (Link Ziel) -> LINK : 致命错误 LNK1104: Datei "C:\Projekte\Cpp\dev\Miele_Oculus\build\Debug\MIELE_OCULUS.exe" kann nicht geöffnet werden。[C:\Projekte\Cpp\dev\Miele_Oculus\build\MIELE_OCULUS.vcxproj]

Verstrichene Zeit 00:00:00.90