相关疑难解决方法(0)

CMakeLists.txt上的CMake错误:30(项目):找不到CMAKE_C_COMPILER

我正在尝试用CMake制作一个Visual Studio解决方案来编译最新版本的aseprite并且CMake一直给我:

No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.
Run Code Online (Sandbox Code Playgroud)

我已经下载了GCC,我正在使用Visual Studio 2015.

我正在学习本教程:

https://github.com/aseprite/aseprite/blob/master/INSTALL.md

c++ gcc cmake visual-studio visual-studio-2015

90
推荐指数
7
解决办法
23万
查看次数

如何调试CMakeLists.txt文件?

CMakeLists.txt除了消息语句之外,是否有可能调试文件(至少列出变量)?

cmake

66
推荐指数
5
解决办法
4万
查看次数

exit.c :(.text + 0x18):使用arm-none-eabi-gcc时未定义引用`_exit'

我是微控制器领域的新手.我需要移植一个IDE,它正在为AVR微控制器编译程序,以便为ARM微控制器编译程序.我刚刚将编译器从AVR替换为ARM,并添加了一些选项.以下是命令:

\ARM-GCC\bin\arm-none-eabi-gcc -O0 -ffunction-sections -Wall -std=gnu99 -mfloat-abi=soft 
-Wa,-adhlns="$@.lst" -fmessage-length=0 -mcpu=cortex-m0 -mthumb -g3 -gdwarf-2 -Wl,
--gc-sections -o <Dir_name>\Build_Files\Blink_arm.cpp.elf  <Dir_name>\Build_Files\Blink_arm.cpp.o <Dir_name>\Build_Files\core.a 
-L<Dir_name>\Build_Files -lm 
Run Code Online (Sandbox Code Playgroud)

当我执行它时,我得到以下错误:

tools/arm-gcc/bin/../lib/gcc/arm-none-eabi/4.6.2\libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text+0x18): undefined reference to `_exit'  
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我可以获得一些关于这个错误的帮助,以及如何解决它.而且我也不知道命令行中的那些选项指定了什么.

gcc arm

42
推荐指数
3
解决办法
5万
查看次数

如何跟踪CMakeLists.txt

有没有办法检查cmake在失败的运行中正在做什么?例如,我有一个程序取决于libbacktrace,我可以链接到gcc foo.c -lbacktrace.但是当我写一个CMakeLists.txt喜欢的

cmake_minimum_required(VERSION 2.8)
find_library (BACKTRACE_LIBRARY backtrace)
message (BACKTRACE_LIBRARY=${BACKTRACE_LIBRARY})
Run Code Online (Sandbox Code Playgroud)

和打字cmake <path>,打印出来BACKTRACE_LIBRARY=BACKTRACE_LIBRARY-NOTFOUND.

我该如何找出问题所在?cmake在放弃查找libbacktrace之前执行了哪些命令?它正在执行任何事情吗?在autoconf中,命令都记录在其中config.log,但CMakeOutput.log在这种情况下是空白的.同样,cmake --trace只回显CMakeLists.txt一堆系统cmake文件之后的内容,在这种情况下这是无用的.

请注意,我不是在寻找一种方法来进行这种特殊的find_library工作调用- 这只是一个例子.我的问题是:我有一个没有按预期工作的CMakeLists.txt; 有哪些工具可以帮助我弄清楚它失败的地点和原因?

cmake

19
推荐指数
2
解决办法
2万
查看次数

如何保留生成的临时文件?

如何强迫它保持像临时工CMakeFiles/cmTC_66ca1.dir/link.txtCMakeFiles/cmTC_66ca1.dir/testCCompiler.c.obj

有一个错误

C编译器无法编译简单的测试程序

但是单独启动命令所需的所有文件都已消失.分析这个很难.

cmake

15
推荐指数
1
解决办法
3581
查看次数

如何部分禁用 cmake C/C++ 自定义编译器检查

我正在尝试使用 cmake 进行一些交叉编译。有些很容易使用互联网上的所有示例,我设法在 Linux(x86 和 ARM)、Windows 和 Android 上交叉编译我的库。但现在我想在自定义平台上进行。

我需要实现的流程:

  1. 获取我的环境(这会破坏所有以前的 bash 经典环境)
  2. 使用cmake编译
  3. 执行我想要的

但 Cmake 正在测试我的自定义 C/C++ 库中的符号,这使得我的库无法编译。我遇到的错误是 cmake 某些版本的 GLIBCXX 和 CXXABI (没有 C 问题),但不是全部。

有没有办法让 cmake 可以接受它?

编辑:

我尝试使用:

set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
Run Code Online (Sandbox Code Playgroud)

与:

include(CMakeForceCompiler)
...
cmake_force_c_compiler(${ENV_PATH}/bin/${CC})
cmake_force_cxx_compiler(${ENV_PATH}/bin/${CXX})
Run Code Online (Sandbox Code Playgroud)

但 cmake 仍在检查符号。

c c++ compilation cmake

4
推荐指数
2
解决办法
8992
查看次数

标签 统计

cmake ×5

c++ ×2

gcc ×2

arm ×1

c ×1

compilation ×1

visual-studio ×1

visual-studio-2015 ×1