我的玩具语言自定义编译器使用Cranelift生成对象代码,我可以将其写入文件main.o。为了将这个对象文件变成一个可执行文件,我用gcc -o main main.o调用GCC。
但是,我想直接将代码输送到GCC,这样就不会有一个临时的对象文件被写入磁盘,所以我让我的编译器编写目标代码到标准输出。使用-作为文件名不起作用,因为-x选项似乎没有任何对象文件的值。
使用某种类型的shell重定向也不起作用:gcc -o main <(compiler)错误与/usr/bin/ld: /proc/self/fd/11: file not recognized: Illegal seek一起
我正试图交叉编译一个冻结的Cython程序,以便在RPi上使用。
生成链接(用于Python库的许多对象)
/usr/bin/arm-linux-gnueabihf-ld:
/root/xxx_Build/usr/local/lib/python3.7/config-3.7m-arm-linux-gnueabihf/libpython3.7m.a(getopt.o): relocation R_ARM_THM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recomp
示例:
具体目标1: abc
make abc GCC_VERSION=4.3.3
具体目标2:发展筹资
make def GCC_VERSION=4.5.0
我想用一个命令编译它。有可能吗?
类似于:
目标3:最终(包含def和abc目标)
make final GCC_VERSION=4.3.3 GCC_VERSION=4.5.0
它是正确的,还是有任何方法来编译它?
我在一个嵌入式powerpc (e500v2)平台上工作。我正在用gcc 4.6.3和eglibc 2.13交叉编译。有一个swig库被编译并加载到目标上。当它加载到python中时,我在回溯中得到这个错误:
ImportError: /opt/load/lib/libISSDcn.so: R_PPC_REL24 relocation at 0x0ddc99c0 for symbol `longjmp' out of range
我之前在这个库上遇到过困难,我正在从我们的目标上的python 2.5迁移到2.7。当我最初尝试编译这个库时,我在编译时得到重定位错误或操作数超出范围错误,这
我正在编译一个静态库,让我们称它为static.a,它稍后由共享库shared.so和最终的可执行二进制文件链接(shared.so只使用了静态的几个函数。a以后可以进一步拆分)。如果我试图编译它,起诉gcc 7.4,我得到这个链接器错误:
/usr/bin/ld: ../../static.a(file.cpp.o): relocation R_X86_64_TPOFF32 against symbol `_ZGVZN6spdlog7details2os9thread_idEvE3tid' can not be used when making a shared object; re
我将相同的源文件(C和Obj-C)编译成两个目标:单元测试可执行文件和实际产品(然后进行集成测试)。这两个目标构建到不同的位置,因此对象文件、.gcno和.gcda文件是分开的。不是所有的源文件都编译到单元测试中,因此不是所有的对象都存在于单元测试中。所有源文件都被编译到产品版本中。
有没有一种方法可以组合这两组.gcda文件以获得单元测试和集成测试的总覆盖率(因为它们在产品构建上运行)?
我用的是lcov。
Mac OS X 10.6,GCC 4.0
谢谢!