标签: toolchain

检查目标文件的后缀... configure:error:无法计算目标文件的后缀:无法编译

在构建ARM工具链时,我收到以下错误

checking for suffix of object files... configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[1]: *** [configure-target-libgcc] Error 1
make[1]: Leaving directory `<path>/gcc-4.3.2-arm-elf'
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?

gcc toolchain

8
推荐指数
1
解决办法
1万
查看次数

arm-none-eabi和arm-linux-gnueabi之间的区别?

arm-none-eabi和arm-linux-gnueabi有什么区别?我知道如何使用它们(一个用于裸机软件,另一个用于打算在Linux上运行的软件)的区别。但是技术背景是什么?

据我所知,我看到了ABI的区别,它类似于API,但在二进制级别。它确保了不同应用程序的互操作性。

但是我真的不了解拥有或没有操作系统会以哪种方式影响我的工具链。我唯一想到的是,在编译裸机软件时,可能必须将库静态链接(对吗?),因为没有操作系统可以动态地提供它们。

我发现与此主题相关的最多页面只是回答了如何使用工具链,但没有回答技术背景。我是机电一体化和嵌入式系统的新学生,所以我在该领域的经验有限。

linux embedded abi toolchain

8
推荐指数
1
解决办法
5733
查看次数

带有cmake工具链文件的Yocto SDK

我提供了一个Yocto SDK来为嵌入式目标交叉构建应用程序.应用程序本身是使用CMake构建的.SDK安装脚本提供了许多必要的环境变量(如交叉编译器的位置,sysroot等),到目前为止,它足以构建应用程序.

但是,最近应用程序依赖于Boost库(通过find_package(Boost REQUIRED)CMakeLists.txt中的命令).现在,CMake抱怨它无法找到库,即使它已安装在SDK sysroot中.但是,如果我直接在Yocto中构建应用程序,它可以正常工作.

经过一些研究后发现,Yocto生成了一个toolchain.cmake添加到cmake调用的文件.在此文件中,CMAKE_FIND_ROOT_PATH设置了变量,CMake需要查找库.使用这样的工具链文件,我也可以使用SDK构建.

现在我想知道Yocto是否提供了使用SDK导出这样一个工具链文件的任何机制.或者,如果SDK提供了一个脚本或其他东西,可以直接在SDK构建主机上自动创建工具链文件.

或者我应该告诉SDK的用户手动创建工具链文件并将其添加到他们的cmake调用?

sdk cmake toolchain yocto

8
推荐指数
1
解决办法
6436
查看次数

Catalina C ++:使用&lt;cmath&gt;标头会产生错误:全局命名空间中没有名为“ signbit”的成员

从Mojave升级到Catalina后,在环境中进行设置:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk。

我无法编译使用<cmath>标头的程序。

我尝试更改CFLAGS,CCFLAGS,CXXFLAGS以指向不变的MacOSSDK位置

Scanning dependencies of target OgreMain
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f OgreMain/CMakeFiles/OgreMain.dir/build.make OgreMain/CMakeFiles/OgreMain.dir/build
[  0%] Building CXX object OgreMain/CMakeFiles/OgreMain.dir/src/OgreASTCCodec.cpp.o
cd /Users/roman/Downloads/ogre-1.12.2/build/OgreMain && /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -DOgreMain_EXPORTS -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0 -I/Users/roman/Downloads/ogre-1.12.2/OgreMain/src/OSX -I/Users/roman/Downloads/ogre-1.12.2/OgreMain/include/Threading -I/Users/roman/Downloads/ogre-1.12.2/OgreMain/src -I/Users/roman/Downloads/ogre-1.12.2/build/Dependencies/include -I/Users/roman/Downloads/ogre-1.12.2/OgreMain/include -I/Users/roman/Downloads/ogre-1.12.2/build/include -I/Users/roman/Downloads/ogre-1.12.2/OgreMain -isystem /usr/local/include  -Wall -Winit-self -Wcast-qual -Wwrite-strings -Wextra -Wundef -Wmissing-declarations -Wno-unused-parameter -Wshadow -Wno-missing-field-initializers -Wno-long-long -Wno-inconsistent-missing-override  -msse -O3 -DNDEBUG -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -fPIC -fvisibility=hidden -fvisibility-inlines-hidden   -std=c++11 -o CMakeFiles/OgreMain.dir/src/OgreASTCCodec.cpp.o -c /Users/roman/Downloads/ogre-1.12.2/OgreMain/src/OgreASTCCodec.cpp
In file included from /Users/roman/Downloads/ogre-1.12.2/OgreMain/src/OgreASTCCodec.cpp:29:
In file included from /Users/roman/Downloads/ogre-1.12.2/OgreMain/src/OgreStableHeaders.h:40:
In file included from /Users/roman/Downloads/ogre-1.12.2/OgreMain/include/OgrePrerequisites.h:309:
In file included …
Run Code Online (Sandbox Code Playgroud)

c++ macos clang toolchain macos-catalina

8
推荐指数
6
解决办法
294
查看次数

为什么需要针对目标的标准库构建(主机)GCC?

我一直在研究构建跨工具链,并对 gcc 的编译和工作有一个一般性问题。

问题是关于官方 gcc 文档的摘录:

为了构建 GCC,将为其构建目标库的所有目标变体(而不仅仅是主机 C++ 编译器的变体)都必须存在 C 标准库和头文件。

为什么需要目标的标准库来构建(交叉)编译器本身?难道在主机上运行的(交叉)编译器不应该只需要构建主机的标准库,然后就能够编译目标的标准库吗?

我还在 crosstool-NG 的工具链构建方式上发现了这一点:

最终编译器需要 C 库,才能知道如何使用它,但是:构建 C 库需要编译器

这与上面所述一致,但我不明白为什么需要针对预构建的目标 C 库构建最终编译器,只是为了知道稍后如何使用它。主机编译器需要了解有关目标 C 库的哪些信息?在编译时将目标程序链接到目标的标准库不是链接器的工作吗?

c gcc gnu cross-compiling toolchain

8
推荐指数
1
解决办法
633
查看次数

使用CMake在Windows下针对Linux进行跨平台构建

我正在Windows 32位上使用C++开发一个软件(使用MSVC++),但由于我希望能够在每个平台上使用我的软件,所以我决定使用CMake作为我的构建生成器.

因此,我仍然只是CMake的初学者.从CMake教程中,我了解到为了交叉编译代码,首先应该在主机平台上安装模拟目标平台的工具链.然后使用此工具链提供的适当的目标平台C和C++编译器,CMake将能够生成makefile等.

现在,我想在Win32平台上为Linux平台(GNU/Linux)构建我的代码.我尝试使用CMake结合Cygwin并使用gcc和g ++作为编译器来执行上述过程.它构建了精细的,创建的makefile,当我在Cygwin终端发出"make"时,生成的makefile被"制作".现在我有了一个我希望可以在Linux平台上运行的可执行文件.但在Linux上我得到错误:bash无法执行二进制文件.

使用命令文件executablename,我意识到由上述过程生成的可执行文件是PE32类型,仅适用于Windows.

现在我的问题是:我对使用cmake的跨平台构建过程的理解是否正确?或者我应该在Windows下使用另一个Linux工具链来获取Linux ELF可执行文件?什么工具链出现在你的脑海里,会给我我想要的东西?

非常感谢

火花报

linux cross-platform build cmake toolchain

7
推荐指数
1
解决办法
7823
查看次数

arm-linux-gnueabi toolchain vs arm-linux-androideabi toolchain.

我可以使用arm-linux-gnueabi-*工具链为我的Android设备编译文件(例如C或C++源代码)吗?

我的问题可能看起来有点傻,但是我会得到与使用arm-linux-androideabi-*工具链编译相同的结果吗?

linux compilation toolchain android-ndk

7
推荐指数
1
解决办法
2728
查看次数

如何重建 GNU Arm Embedded Toolchain 的 newlib 和 newlib-nano

我从https://developer.arm.com/open-source/gnu-toolchain/gnu下载了工具链“ gcc-arm-none-eabi-6-2017-q2-update-win32-sha1.exe ”(Windows)-rm/downloads并将其安装在我的 Windows 10 PC 上。

安装文件夹在“ ../share/doc/gcc-arm-none-eabi/ ”中包含一个 release.txt ,它告诉:

此版本包括以下项目:

  • newlib 和 newlib-nano : git://sourceware.org/git/newlib-cygwin.git commit 0d79b021a4ec4e6b9aa1a9f6db0e29a137005ce7

../share/doc/gcc-arm-none-eabi/ ”中的 readme.txt 还包含:

  • C 库使用 *

该工具链与两个基于 newlib 的预构建 C 库一起发布:一个是标准的 newlib (libc.a),另一个是代码大小的 newlib-nano (libc_nano.a)。

现在我想完全重建“ ../arm-none-eabi/lib/thumb ”中包含的所有 libc.a 和 libc_nano.a

目前我可以使用“ gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 ”在Ubuntu上构建

$ # Downloaded newlib-cygwin (with corresponding hash) into folder newlib-cygwin
$ mkdir build
$ cd build
$ ../newlib-cygwin/configure --target=arm-none-eabi --disable-newlib-supplied-syscalls
$ make
Run Code Online (Sandbox Code Playgroud)

我必须如何配置 newlib 以构建 gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 中包含的 libc.a 和 libc_nano.a …

c c++ arm newlib toolchain

7
推荐指数
1
解决办法
6011
查看次数

如何在 CLion 2018.2 中切换工具链?

我今天开始尝试使用 CLion 2018.2,我遇到的第一个问题是如何在 CLion 中切换工具链。

我想将工具链从 MinGW 切换到 Visual Studio,我可以通过将 Visual Studio 工具链设为默认来切换它(文件->设置->构建、执行、部署->工具链->选择 Visual Studio->单击向上箭头)。

在此处输入图片说明

但我不想将此工具链设为默认值。我只是想尝试一下。

如果我想切换工具链,我应该按这个向上箭头按钮还是有更简单的方法?

谢谢。

toolchain clion

7
推荐指数
2
解决办法
3462
查看次数

Ubuntu WSL 已列在 Clion 工具链中,但显示“未找到”

与这个问题这个问题不同,CLion 似乎正确检测到了 WSL:

检测到 WSL

您可以看到 Ubuntu-20.04 已列出,但仍未找到:

未找到

版本:

  • Windows 10:1803
  • WSL : 1 (因为 windows 1803 不支持 WSL 2)
  • WSL Distrib:来自 Windows 商店的 Ubuntu 20.04
  • CLion:2021年2月3日

有人遇到过这个问题吗?

toolchain clion windows-10 windows-subsystem-for-linux ubuntu-20.04

7
推荐指数
1
解决办法
5156
查看次数