- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 CMake 的新手(通常对 Makefiles、C 和 C++ 还是相当陌生)。我的任务是将我们当前的构建系统更改为使用 CMake 生成 Makefile 并编译我们的代码的系统。我在破译 CMake 报告的错误时遇到了困难,并且在搜索这个网站或任何 sute 时都没有运气。如果此问题已在其他地方得到解答,请指导我,我提前致歉。
我试图发布一张显示我们当前文件结构故障的图像,但我还没有发布图像的信誉点...
以下是我在同时运行 cmake . 和 make 时收到的错误:
*chrisk@DEVSERVER:~/633.CMake$ cmake .
xmlrole.c
xmltok.c
xmlparse.c
sysMon.cpp
-- Configuring done
-- Generating done
-- Build files have been written to: /home/chrisk/633.CMake
chrisk@DEVSERVER:~/633.CMake$ make
[ 25%] Building C object arm/expat/CMakeFiles/expat.dir/xmlrole.c.o
[ 50%] Building C object arm/expat/CMakeFiles/expat.dir/xmltok.c.o
[ 75%] Building C object arm/expat/CMakeFiles/expat.dir/xmlparse.c.o
/home/chrisk/633.CMake/arm/expat/xmlparse.c: In function 'XML_Status
/home/chrisk/633.CMake/arm/expat/xmlparse.c: In function 'XML_Status XML_Parse(XML_ParserStruct*, const char*, int, int)':
/home/chrisk/633.CMake/arm/expat/xmlparse.c:1488:14: warning: enumeration value 'XML_FINISHED' not handled in switch
Linking C static library libexpat.a
[ 75%] Built target expat
[100%] Building CXX object arm/services/CMakeFiles/services.dir/sysMon.cpp.o
In file included from /home/projects/OMAP-L137/timesys/factory-current/build_armv5l- timesys-linux-uclibcgnueabi/DSPLink-1_65_01/DSPLink- 1_65_01/dsplink/gpp/inc/usr/dsplink.h:52:0,
from /home/chrisk/633.CMake/dsp/included/flagIOBuffer.h:4,
from /home/chrisk/633.CMake/arm/framework/memoryManagerBase.h:4,
from /home/chrisk/633.CMake/arm/framework/memoryManager.h:4,
from /home/chrisk/633.CMake/arm/services/sysMon.cpp:9:
/home/projects/OMAP-L137/timesys/factory-current/build_armv5l-timesys-linux- uclibcgnueabi/DSPLink-1_65_01/DSPLink-1_65_01/dsplink/gpp/inc/usr/linkcfgdefs.h:824:37: error: 'MAX_DSPS' was not declared in this scope
In file included from /home/chrisk/633.CMake/arm/services/sysMon.cpp:16:0:
/home/chrisk/633.CMake/arm/logging/logger.h:43:17: note: the mangling of 'va_list' has changed in GCC 4.4
make[2]: *** [arm/services/CMakeFiles/services.dir/sysMon.cpp.o] Error 1
make[1]: *** [arm/services/CMakeFiles/services.dir/all] Error 2
make: *** [all] Error 2
chrisk@DEVSERVER:~/633.CMake$
这是项目源目录中的CMakeLists.txt:
*INCLUDE(CMakeForceCompiler)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(633.CMake)
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR arm)
this one not so much
SET(CMAKE_SYSTEM_VERSION 1)
SET(FACTORY_CURRENT /home/projects/OMAP-L137/timesys/factory-current)
SET(TOOLCHAIN_LOC ${FACTORY_CURRENT}/build_armv5l-timesys-linux- uclibcgnueabi/toolchain/bin)
specify the cross compiler
SET(CMAKE_C_COMPILER ${TOOLCHAIN_LOC}/armv5l-timesys-linux-uclibcgnueabi-g++)
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_LOC}/armv5l-timesys-linux-uclibcgnueabi-g++)
SET(CMAKE_C_FLAGS "-Wall -c")
SET(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
where is the target environment
SET(CMAKE_FIND_ROOT_PATH /home/projects/OMAP-L137/timesys/factory-current)
SET(PROJECT_SOURCE_DIR /home/chrisk/633.CMake/)
search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/build/bin)
ADD_SUBDIRECTORY(arm)*
这里是633.CMake/arm/expat目录下的CMakeLists.txt
*ADD_SUBDIRECTORY(expat)
ADD_SUBDIRECTORY(services)
*
这是目录 633.CMake/arm/expat* 中的 CMakeLists.txt(这会创建库 libexpat.a 作为它应该)和文件 expatfiles.txt 只是列出了 expat 所需的源文件(同样的事情适用于服务 CMakeLists.txt:
*FILE(READ "expatfiles.txt" contents)
STRING(REGEX REPLACE "\n" ";" contents "${contents}")
foreach(expatfile ${contents})
message("${expatfile}")
endforeach()
ADD_LIBRARY(expat ${contents})*
这里是633.CMake/arm/services*目录下的CMakeLists.txt
*INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/arm/framework ${CMAKE_SOURCE_DIR}/arm/io_master ${CMAKE_SOURCE_DIR}/arm/flagDictionary
${CMAKE_SOURCE_DIR}/arm/logging ${CMAKE_SOURCE_DIR}/dsp/included ${CMAKE_SOURCE_DIR}/dsp/mb)
INCLUDE_DIRECTORIES(${FACTORY_CURRENT}/build_armv5l-timesys-linux- uclibcgnueabi/DSPLink-1_65_01/DSPLink-1_65_01/dsplink/gpp/inc/usr)
INCLUDE_DIRECTORIES(/home/projects/OMAP-L137/timesys/factory-20120925-633/build_armv5l- timesys-linux-uclibcgnueabi/DSPLink-1_65_01/DSPLink-1_65_01/dsplink/gpp/inc/usr)
INCLUDE_DIRECTORIES(/home/projects/OMAP- L137/SDK/OMAPL137_arm_1_00_00_11/dsplink_linux_1_65_00_03/dsplink/gpp/src/inc/sys/Linux)
FILE(READ "servicesfiles.txt" contents)
STRING(REGEX REPLACE "\n" ";" contents "${contents}")
foreach(servicesfiles ${contents})
message("${servicesfiles}")
endforeach()
ADD_LIBRARY(services ${contents}
最佳答案
此特定错误不是由 CMake 引起的。而是看到这一行:
/home/projects/OMAP-L137/timesys/factory-current/build_armv5l-timesys-linux- uclibcgnueabi/DSPLink-1_65_01/DSPLink-1_65_01/dsplink/gpp/inc/usr/linkcfgdefs.h:824:37: error: 'MAX_DSPS' was not declared in this scope``
问题是缺少符号 MAX_DSPS
。在源代码树中执行递归 grep,并查看此 MAX_DSPS
应该来自何处。它很可能是在头文件中定义的宏(或全局变量),您没有包含它,或者它可能是您需要在编译时通过 CMakeLists.txt 文件提供的宏(参见文档: add_definitions 关于如何在 CMake 中执行)
关于c++ - 破译 CMake 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20691916/
我正在尝试用 Python 破译标准的“a = 1, b = 2, c = 3...”密码,但我有点卡住了。我想要解密的消息是“he”——“8 5”,但由于我的 if 语句的顺序,输出是“eh”。有人
所以我正在编辑代码,并且有一段代码完全没有注释,所以我担心对其进行任何更改,这一切都是从这个 while 语句开始的。 有人能破译这个吗?从技术上描述这是在说什么/在做什么,我相信我能弄清楚我理解第一
好的,所以我在 Haskell 中有这段代码: data Bigit = O | I deriving (Show,Eq) add x y = reverse $ addC O (reverse x)
我继承了一个 BASIC 脚本,我正在尝试将其重写为 Python。我不知道 BASIC,甚至不知道这是哪个版本的 BASIC。是 Visual Basic 吗?请帮我翻译这段代码。 'County
我对 puppet 很陌生,只是想了解输出告诉我的内容。我有一个非常简单的 init.pp 文件来配置 shudders 文件: class sudo { package { sudo:
下面这段代码是为了演示一段OSGi代码中可能发生的死锁,直接取自免费下载的书籍:osgi in practice (Neil Bartlett) 。这本书总体上很容易理解,而且我发现它非常有用。但是,
我正在玩 vim-ruby 缩进,那里有一些非常复杂的正则表达式: " Regex used for words that, at the start of a line, add a level o
我继承了一个 BASIC 脚本,我正在尝试将其重写为 Python。我不知道 BASIC,甚至不知道这是哪个版本的 BASIC。是 Visual Basic 吗?请帮我翻译这段代码。 'County
我在逆向此代码以从 qwerty 解密回 abc 时遇到问题。 我不知道从哪里开始。我尝试用包含 ABC 的字符串替换索引...我还尝试将密文交换为 abc 并将索引更改为 qwerty,但无济于事。
我正在尝试设置一个 cron 作业,我收到了以下命令:wget -0 - -t 1 但我无法完全弄清楚如何使用此资源: http://www.computerhope.com/unix/wget.ht
这个问题在这里已经有了答案: tkinter creating buttons in for loop passing command arguments (4 个答案) 关闭 8 个月前。 我一直
我是 CMake 的新手(通常对 Makefiles、C 和 C++ 还是相当陌生)。我的任务是将我们当前的构建系统更改为使用 CMake 生成 Makefile 并编译我们的代码的系统。我在破译 C
我正在“玩”C++ 中的虚拟继承,我想知道一个类对象是如何布局的。我有这三个类: class A { private: int a; public: A() {this->a = 47
我正在尝试解读与 clr20r3 关联的 P1...P10 参数的含义,当我的应用程序遇到异常时,这些参数会写入事件日志。 我所拥有的最好的been able to find是: P1:托管进程(例如
我有一个带有 postgresql 后端的 Django 网络应用程序,用户可以在其中聚集并互相发送消息。这些消息可以被赞成或反对。如果有任何滥用行为,有很多反对票的人会得到“ghost banned
源代码 class W { public: virtual void f() { cout f(); // Invokes B::f why not w::f paw 指向 AW 的 vtable
我记得曾经看到一个网站,它破译了复杂的 C++ typedef,包括返回函数指针的函数指针,这些函数返回一个数组...... 它将把这样的定义变成可读的英文文本:»指向函数的指针,返回一个 int 指
我有这个 DIV 标签,其中有一个类定义。 我搜索了整个元素,但使用文本搜索功能在任何地方都找不到这个类。 目前,DIV 太宽了,我需要将其缩小一点。 每当我删除 class="clear
所以......我可以理解matlab函数句柄及其目的。但有时,当它变得过于神秘时,我需要帮助来进一步阐述它。 从默认 MATLAB documentation 中获取此示例,说: f = @(x)x
我正在尝试从 VB6 应用程序调用 TAPI32.dll 上的函数。我不知道如何在 VB6 中指定信息并调用它。所以,这个问题问的是帮助破译MSDN中的C++相关信息,并在VB6中调用它,但我在下面详
我是一名优秀的程序员,十分优秀!