首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用cmake4eclipse的Eclipse :编辑器不识别在CMakeLists.txt中定义的符号

使用cmake4eclipse的Eclipse :编辑器不识别在CMakeLists.txt中定义的符号
EN

Stack Overflow用户
提问于 2020-07-07 06:58:39
回答 1查看 686关注 0票数 1
  • Windows 10版本1809
  • 供C/C++开发人员使用的Eclipse IDE (版本: 2019-06 (4.12.0))
  • cmake4eclipse 2.1.1
  • cmake版本3.17.0
  • GNU Make 4.2.1

一个简单示例项目的存储库:手臂-无-eabi-gcc/src/师父/

使用arm-none-eabi-gcc编译器时,Eclipse /C++编辑器不识别我在CMakeLists.txt.中设置的符号。

代码语言:javascript
运行
复制
...
if(1)
 set(CMAKE_C_COMPILER arm-none-eabi-gcc)
else()
 set(CMAKE_C_COMPILER gcc)
endif()
...

使用gcc编译器时,Eclipse /C++编辑器确实识别了CMakeLists.txt.中设置的符号。

代码语言:javascript
运行
复制
...
if(0)
 set(CMAKE_C_COMPILER arm-none-eabi-gcc)
else()
 set(CMAKE_C_COMPILER gcc)
endif()
...

在这两种情况下,构建项目都是可行的。有什么想法吗?这里有什么问题?

你好,克里斯蒂安

编辑: CMakeLists.txt的内容

代码语言:javascript
运行
复制
cmake_minimum_required(VERSION 3.10)

#set(CMAKE_MAKE_PROGRAM "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/mingw32-make.exe")
set(CMAKE_MAKE_PROGRAM "C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/mingw32-make.exe")
#set(CMAKE_MAKE_PROGRAM "C:/Tools/ON Semiconductor/RSL10_IDE_3_3/IDE_V3.2.2.13/arm_tools/bin/make.exe")

set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_CROSSCOMPILING 1)

set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
set(CMAKE_C_OBJCOPY arm-none-eabi-objcopy)

if(1)
    set(CMAKE_C_COMPILER arm-none-eabi-gcc)
else()
    set(CMAKE_C_COMPILER gcc)
endif()

project(cmake_driven_example_arm-none-eabi-gcc C)

set(SOURCES
    main.c
    modules/math/math.c
)

include_directories(
    modules/math
)

set(CMAKE_C_FLAGS "-DINCLUDE_MATH")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DMYVAR=5")

# Invoking: Cross ARM C Linker
set(CMAKE_EXE_LINKER_FLAGS "-Xlinker --gc-sections")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -T\"${CMAKE_SOURCE_DIR}/sdk_packages/rsl10_sdk/source/firmware/cmsis/source/GCC/sections_modified.ld\"")


# build elf file
add_executable(${PROJECT_NAME} ${SOURCES})
target_link_libraries(${PROJECT_NAME}
                        ${CMAKE_SOURCE_DIR}/sdk_packages/rsl10_sdk/lib/ble_core/Release/libblelib.a
                        ${CMAKE_SOURCE_DIR}/sdk_packages/rsl10_sdk/lib/ble_core/Release/libkelib.a
)

相关cmake4eclipse主题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-09 05:06:38

索引器被设置为“使用固定的构建配置”。这就是为什么我可以在不同的配置中构建,但编辑器总是显示指定配置的标志值(=Debug)。

应该可以使用项目特定(PS)索引器设置,但是.

Eclipse中存在一个错误,导致索引器(请参阅bug205299)的一种不直观的行为:

WS: Window > Preferences > C/C++ > Indexer > Build configuration for indexer:使用项目索引器设置中指定的构建配置

项目属性> C/C++通用>索引>用户主动构建配置

解决方案:使用特定于工作区(WS)的索引器设置:使用活动构建配置

也许编译器的路径也有问题:文件夹名"...\IDE_V3.2.2.13\arm_tools\bin\arm-none-eabi-gcc.exe“-> IDE_V3.2.2.13中的点

它给了我以下警告:(fyi:在示例项目中,我没有定义条目符号Reset_Handler)

通过移动arm_tools文件夹,Eclipse可以识别这些符号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62769679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档