标签: toolchain

为什么Rust要求使用C ++工具链来生成Rust二进制文件,而Go之类的语言却没有此要求?

rustc foo.rs如果我没有安装C ++工具链,则使用编译Rust文件将失败。但是在编译Go程序时,不需要这样的工具链。这是为什么?

c++ build-tools go toolchain rust

3
推荐指数
1
解决办法
279
查看次数

编译完成后可以执行任务吗?

我知道build.rs可以在程序编译开始之前执行任务,所以我可以准备任何我想要的东西。

如果编译完成后要执行一项任务(例如某种清理)怎么办?有什么办法可以做到这样的事情吗?

举一个简单的例子:在编译之前,我想出于某种原因将文件从 重命名foo.txtabc.txt。然后在编译终止我想将其重命名回foo.txt.

compilation toolchain rust rust-cargo

3
推荐指数
1
解决办法
2691
查看次数

Eclipse Indigo中的Visual Studio工具链插件

互联网上的几个链接(例如:http://drdobbs.com/article/printarticleId = 232300575& siteSectionName = http://www.hydrogenaudio.org/forums//lofiversion/index.php/t74268.html)指出那里是Eclipse Indigo的VS工具链插件,它将Visual Studio(Express)集成到CDT中.有人可以指出从哪里下载它?

感谢:D.

eclipse plugins toolchain

2
推荐指数
1
解决办法
6714
查看次数

用于创建Android程序的替代语言或工具链

是否有某种替代工具链或Android语言,可以生成独立的APK文件?

理想情况下,应该依赖于庞大的,不断变化,不断升级官方Android SDK.

尽管微软一直在发布新的Visual Studios,但我正在寻找一个与PowerBASICMingw如何针对普通Windows完全正常的粗略对等.

如果此语言或工具链本身是Android程序,则奖励积分......

ide android dalvik toolchain apk

2
推荐指数
1
解决办法
733
查看次数

在哪里可以找到适用于 Android 的 nm 工具(已编译或源代码)

我想创建一个能够在 Android 中列出动态库 .so 文件的所有符号的应用程序。我想问一下有没有预编译的nm for Android 或者至少有nm 的源代码,这样我就可以自己编译了。

android toolchain android-ndk

2
推荐指数
1
解决办法
5376
查看次数

CMake(Android工具链) - 运行链接命令时出错:没有这样的文件或目录

我正在使用CMake构建Android项目."android.toolchain.cmake"工具链用于构建项目.

所有环境变量都按照android cmake的用法部分所述进行设置.以下选项变量被设置为环境变量ANDTOOLCHAIN ANDROID_STANDALONE_TOOLCHAIN ANDROID_ABI ANDROID_NATIVE_API ANDROID_STL CC和CXX分别指向androideabi-gcc和androideabi-g ++

CMAKE成功生成了Make文件,但当我"生成"项目时,它正在抛出"错误运行链接命令:没有这样的文件或目录".

link.txt的详细信息如下

*cd/Extra/svnroot/2014_Project/build/project123 &&/usr/bin/cmake -E cmake_link_script CMakeFiles/project123dir/link.txt --verbose = 1

CMAKE_C_COMPILER -fPIC -Wno-psabi --sysroot =/path_to_sysroot_dir/sysroot -fpic -funwind-tables -finline-limit = 64 -fsigned-char -no-canonical-prefixes -march = armv7-a -mfloat-abi = softfp - mfpu = vfpv3-d16 -fdata-sections -ffunction-sections -Wa, - noexecstack -Wno-missing-field-initializers -Wno-strict-aliasing -Wno-deprecated -Wno-unused -Wno-unused-variable -Wsign- compare -Wsequence-point -Wunused-but-set-variable -Wall -Wextra -Wno-unused-parameter -fno-strict-aliasing -pthread -Wl, - fix-cortex-a8 -Wl, - no-undefined - Wl,-allow-shlib-undefined -Wl, - gc-sections -fuse-ld = gold -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname ,libproject123.so …

c++ linux android cmake toolchain

2
推荐指数
1
解决办法
3277
查看次数

Maven工具链未在构建中触发

我正在使用最新的maven 3.3.9,它强制执行java 8,并尝试使用java 7 maven工具链在java 7中编译项目.

按照: maven指南我已经放入maven工具链插件尝试告诉它使用java 7来编译应用程序.我的项目设置如下:

  • top_module - >(在这个pom.xml中放入了maven工具链插件)

    --- submodule1

    --- submodule2

这是我的父pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>parent</groupId>
        <artifactId>build-base</artifactId>
        <version>1.0.17</version>
    </parent>

    <groupId>top_module</groupId>
    <artifactId>top_module</artifactId>
    <version>1</version>
    <packaging>pom</packaging>
    <name>${project.artifactId}</name>

    <modules>
        <module>submodule1</module>
        <module>submodule2</module>
    </modules>

    <properties>


        ...

    </properties>

    <dependencyManagement>
        <dependencies>

            <dependency>
                ...
            </dependency>
            <dependency>
                ...
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            ...
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <!-- Ensure we compile as the correct jdk version -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-toolchains-plugin</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java xml toolchain maven

2
推荐指数
1
解决办法
1727
查看次数

如何修改Buildroot包的来源进行包开发?

我一直在使用buildroot来使用uclibc构建工具链。现在,buildroot下载所有包,解压并构建它们。

我想更改工具链的uclibc源代码,然后使用新源代码重新编译工具链,但我只是不明白如何以漂亮的方式完成它。

完成构建后,所有提取的源都可以在“ <buildroot-src>/output/build ”中找到。但更改它们不会给我带来任何好处,因为 buildroot 仅在构建期间使用此目录作为中间目录。

所以我的想法是,也许可以更改uclibc包中的 .mk 文件,并使其使用我修改过的源代码,而不是下载并提取它(尚未确定是否可以在那里完成),但这似乎是一个有点难看的解决方案。

所以我的问题是:有没有更好的方法告诉 buildroot 使用现有源构建包?

linux uclibc toolchain buildroot

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

什么是GCC工具链?

它可以通过哪些方式作为C / assembly / object / executable编译器的示例?

我希望获得的信息比维基百科提供的信息少。另外,如果您可以链接一些可以在其中找到更多信息的资源,那将是很棒的。

gcc toolchain

2
推荐指数
1
解决办法
3523
查看次数

ARM工具链编译库(buildroot)

我正在使用 buildroot 的工具链来交叉编译 ARM 应用程序。然而,某些应用程序需要的库不是为该工具链编译的。我的主机工具链上有这些库,例如 -ljack、lfftw 等。

我需要知道,如果我获得所需软件包的 tarball,那么如何配置它们,以便由 arm-gcc 编译这些库,并将标头/库复制到 buildroot 的 /usr 和 /include ?

这样我应该能够通过 buildroot 的工具链访问这些库。

谢谢,

gcc arm cross-compiling toolchain buildroot

0
推荐指数
1
解决办法
2049
查看次数

FindThreads 仅在启用 C 或 CXX 语言时有效

我正在尝试构建一个可移植的 gcc,以允许其他人使用不同的系统进行编译。

我用crosstool-ng交叉编译gcc-8.2x86_64,我建了一个静态的工具链。

我创建了以下工具链文件:

#set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
set(QAMF_ROOT "/opt/hyperserver-dev/x86_64-qamf")

set(COMPILER_ROOT "${QAMF_ROOT}")
set(COMPILER_PREFIX "x86_64-qamf-linux-gnu-")
set(C_COMPILER "gcc")
set(CXX_COMPILER "g++")

# specify the cross compile
set(CMAKE_C_COMPILER    ${COMPILER_ROOT}/bin/${COMPILER_PREFIX}${C_COMPILER} )
set(CMAKE_CXX_COMPILER  ${COMPILER_ROOT}/bin/${COMPILER_PREFIX}${CXX_COMPILER} )

# HyperServer sysroot path
set(HYPERSERVER_SYSROOT "${COMPILER_ROOT}/x86_64-qamf-linux-gnu/sysroot") 

# where is the target environment 
set(CMAKE_FIND_ROOT_PATH ${HYPERSERVER_SYSROOT} )

# 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)
Run Code Online (Sandbox Code Playgroud)

在我的主机上它工作得很好,我可以毫无问题地编译,但是当我在另一台机器上移动工具链文件时,我遇到了问题。如果我尝试在 cmake 中包含 Threads,则会出现以下错误: …

c++ cmake toolchain

0
推荐指数
1
解决办法
4921
查看次数

为什么我的内核会立即重置我的机器?

我正在使用 Buildroot 2020.02.1 为安装了 AMD GX-222GC SOC 的 PC 构建自定义内核。

默认的外部工具链是来自 CodeBench 的 amd-2016.11-19。使用该工具链构建的内核正确启动。 相反,如果我使用由 buildroot 自动构建的工具链构建相同的内核、相同的配置,则内核不会启动!甚至没有内核恐慌,机器只是重置。

很明显,问题与工具链有关。

这些是 gcc -v 的结果

代码台

$ output/host/usr/bin/x86_64-amd-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/media/AAA/tmp/buildroot_toolchain/output/host/opt/ext-toolchain/bin/x86_64-amd-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/media/AAA/tmp/buildroot_toolchain/output/host/opt/ext-toolchain/bin/../libexec/gcc/x86_64-amd-linux-gnu/6.2.0/lto-wrapper
Target: x86_64-amd-linux-gnu
Configured with: /scratch/jmyers/amd-lite/src/gcc-6-2016.11/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=x86_64-amd-linux-gnu --enable-threads --disable-libmudflap --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=btver2 --with-cpu=btver2 --with-gnu-as --with-gnu-ld --with-specs='-D__CS_SOURCERYGXX_MAJ__=2016 -D__CS_SOURCERYGXX_MIN__=11 -D__CS_SOURCERYGXX_REV__=19' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-glibc-version=2.24 --with-pkgversion='Sourcery CodeBench Lite 2016.11-19' --with-bugurl=https://sourcery.mentor.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/x86_64-amd-linux-gnu/libc --with-build-sysroot=/scratch/jmyers/amd-lite/install/opt/codesourcery/x86_64-amd-linux-gnu/libc --with-gmp=/scratch/jmyers/amd-lite/obj/pkg-2016.11-19-x86_64-amd-linux-gnu/amd-2016.11-19-x86_64-amd-linux-gnu.extras/host-libs-i686-pc-linux-gnu/usr --with-mpfr=/scratch/jmyers/amd-lite/obj/pkg-2016.11-19-x86_64-amd-linux-gnu/amd-2016.11-19-x86_64-amd-linux-gnu.extras/host-libs-i686-pc-linux-gnu/usr --with-mpc=/scratch/jmyers/amd-lite/obj/pkg-2016.11-19-x86_64-amd-linux-gnu/amd-2016.11-19-x86_64-amd-linux-gnu.extras/host-libs-i686-pc-linux-gnu/usr --with-isl=/scratch/jmyers/amd-lite/obj/pkg-2016.11-19-x86_64-amd-linux-gnu/amd-2016.11-19-x86_64-amd-linux-gnu.extras/host-libs-i686-pc-linux-gnu/usr --enable-libgomp --enable-libitm --enable-libatomic --disable-libssp --disable-libcc1 --enable-poison-system-directories --with-python-dir=x86_64-amd-linux-gnu/share/gdb/python --with-build-time-tools=/scratch/jmyers/amd-lite/install/opt/codesourcery/x86_64-amd-linux-gnu/bin --with-build-time-tools=/scratch/jmyers/amd-lite/install/opt/codesourcery/x86_64-amd-linux-gnu/bin SED=sed …
Run Code Online (Sandbox Code Playgroud)

x86-64 linux-kernel toolchain buildroot

0
推荐指数
1
解决办法
93
查看次数

为什么工具链文件在 CMake 中执行了几次?

在尝试使用 SDCC 编译器创建交叉编译 CMake 工具链模板时,我遇到了一个非常奇怪的问题。

如此链接所述,如果toolchain.cmake文件定义了 a ,CMake 将在目录下CMAKE_SYSTEM_NAME查找具有 的文件。这个文件应该定义特定于平台的选项。就我而言,我用它来查找${CMAKE_SYSTEM_NAME}.cmakeModule/Platformsdcc编译器并设置一些编译器标志。

这对我来说效果很好。使用cmake -DCMAKE_MODULE_PATH="${PATH_TO_MY_MODULES}" -DCMAKE_TOOLCHAIN_FILE="${PATH_TO_MY_TOOLCHAIN}" -DSDCC_SYSROOT="SOME_VALUE",CMake 找到所有正确的工具链和平台文件。

看起来工具链和平台文件在配置过程中被执行了几次(不确定这是否是正确的术语)。在前几次中,我在 CMake 命令中传递的变量具有预期的SDCC_SYSROOT值。SOME_VALUE然而,相同的变量SDCC_SYSROOT似乎在上次执行这些工具链/平台文件时丢失了值。所以他们是空的。这会导致我的脚本生成致命错误。

toolchain.cmake有以下内容:

set(CMAKE_SYSTEM_NAME SDCC_PIC_16F877A)

# Finding resource settings
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

# Set default MCU family and model
if (NOT MICROCHIP_FAMILY)
  set(MICROCHIP_FAMILY "pic16")
endif()

if (MICROCHIP_MODEL STREQUAL "pic16")
  set(MICROCHIP_MODEL "16f877a")
endif()


# Need a better way to detect …
Run Code Online (Sandbox Code Playgroud)

cmake toolchain sdcc

0
推荐指数
1
解决办法
2581
查看次数