标签: object-files

使用Qt/qmake时如何将生成的文件(例如目标文件)放入单独的文件夹中?

我有一个使用qmake的Qt项目.为了提高清晰度和可读性,我想保留

  • 源文件
  • 构建系统
  • 生成的文件(例如目标文件)

分离.

所以我的第一步是将源文件放入src/sub目录:

myproject/
    myproject.pro
    src/
        main.cpp
        MainWindow.ui
        ...
Run Code Online (Sandbox Code Playgroud)

这样我就将源文件与构建系统(*.pro)分开了.然而,当我然后运行qmake其次make,将所生成的文件(目标文件等)被放置到主项目文件夹中:

myproject/
    myproject.pro
    Makefile
    main.o
    ui_MainWindow.h
    ...
    src/
        main.cpp
        MainWindow.ui
        ...
Run Code Online (Sandbox Code Playgroud)

好吧,至少他们没有被放入src/文件夹,但我如何指定他们被放入另一个子文件夹,如build/

myproject/
    myproject.pro
    Makefile
    build/
        main.o
        ui_MainWindow.h
        ...
    src/
        main.cpp
        MainWindow.ui
        ...
Run Code Online (Sandbox Code Playgroud)

(顺便说一下,我不关心目标二进制文件myproject放在哪里,但我想它应该直接放在项目文件夹中而不是放入build/.)

qt qmake object-files

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

.o对象文件和.so库文件有什么区别?

就像标题所说,"程序对象文件"(.o扩展名)和"库文件"(.so扩展名)之间有什么区别

executable elf object-files

12
推荐指数
1
解决办法
4928
查看次数

将.o文件转换为.exe文件

是否可以将从.c源代码创建的目标文件.o转换为.exe?如果可能有使用gcc的直接命令?

c c++ gcc object-files

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

无法使用ld在Mac OS X中链接程序集文件


我正在尝试使用64位Mac OS X Lion运行基本的汇编文件,使用默认安装Xcode的nasm和ld.

我编写了一个汇编文件,它打印了一个字符,然后我使用nasm构建它.

nasm -f elf -o program.o main.asm

但是,当我将它与ld链接时,它会因为相当多的错误/警告而失败:

ld -o program program.o

ld: warning: -arch not specified
ld: warning: -macosx_version_min not specificed, assuming 10.7
ld: warning: ignoring file program.o, file was built for unsupported file format which is not the architecture being linked (x86_64)
ld: warning: symbol dyld_stub_binder not found, normally in libSystem.dylib
ld: entry point (start) undefined.  Usually in crt1.o for inferred architecture x86_64
Run Code Online (Sandbox Code Playgroud)

所以,我试图纠正其中的一些问题,并没有取得任何进展.

这是我尝试过的一件事:

ld -arch i386 -e _start -o program program.o

我认为这会奏效,但我错了. …

macos assembly nasm ld object-files

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

目标文件上下文中的LLVM虚拟部分是什么?

在查看LLVM源代码中的错误修复时,我遇到了"虚拟部分"一词,并想知道它的含义.

我尝试使用谷歌搜索一些不同的术语并进一步浏览源代码,但我设法发现的是,每个目标文件格式的isSectionVirtual成员函数的实现似乎表示如果一个部分没有内容(例如.bss,则该部分是虚拟的)部分,但源代码清楚地表明这是两个不同的概念).实现方式因所涉及的特定对象格式而异.

我对理解目标文件的内部结构还是比较陌生的,所以我不确定这是LLVM还是LLVM之外的更一般的概念.

有人可以告诉我目标文件中的虚拟部分是什么吗?

compiler-construction llvm object-files

11
推荐指数
1
解决办法
183
查看次数

预编译的Windows OMF BLAS/LAPACK?

有没有我可以用OMF对象格式获得Windows的预编译BLAS和LAPACK二进制文件?我想将一些D语言代码链接到这些.我知道在哪里可以获得COFF格式的相关库.我也知道objconv工具,它将COFF转换为OMF,尽管由于我不完全理解的原因,这似乎在实践中不起作用.这些似乎与符号中的下划线有关,尽管我尝试了几乎每个设置来处理这些并且似乎都没有.

或者,是否有人知道如何将引用二进制文件转换为OMF,以便它们实际上可以正确链接到DMD编译的代码?作为最后的手段,有谁知道如何使用DMC构建CLAPACK,CBLAS和F2CLIB?这些附带的构建过程似乎完全面向GCC工具链.

d blas lapack object-files omf

10
推荐指数
1
解决办法
706
查看次数

太多的部分,汇编程序错误,使用boost :: spirit

我正在为Java的一个子集编写编译器boost::spirit,用于lexing和解析.在编译词法分析器/解析器阶段期间,编译器消耗1.6GBRAM(g++ (GCC) 4.8.1),但这不是问题,因为这台机器上有足够的内存.

然而,问题在于,当编译器完成并且汇编程序开始运行(GNU assembler (GNU Binutils) 2.23.52.20130604)时,它会崩溃;

as: build/src/ast_generate.o: too many sections (33098)
/tmp/cc0ZyvKK.s: Assembler messages:
/tmp/cc0ZyvKK.s: Fatal error: can't write build/src/ast_generate.o: File too big
as: build/src/ast_generate.o: too many sections (33098)
/tmp/cc0ZyvKK.s: Fatal error: can't close build/src/ast_generate.o: File too big
scons: *** [build/src/ast_generate.o] Error 1
Run Code Online (Sandbox Code Playgroud)

添加'-Os'到我的编译器标志,允许汇编程序处理编译器输出,但正如我所看到的,这只是时间问题,直到我遇到同样的问题,即使使用小优化标志.

检查,使用大小优化的对象文件(ast_generate.o)objdump告诉我,我正在生成pe-x86-64,这是我在Windows上所期望的.

然而,2358生成的部分对我来说是一个震惊.主要是因为似乎已经为每个部分生成了一个部分boost::spirit;

 CONTENTS, ALLOC, LOAD, READONLY, DATA, LINK_ONCE_DISCARD
 ...
 60 .pdata$_ZNK5boost5lexer6detail8end_node9unique_idEv 0000000c  0000000000000000 …
Run Code Online (Sandbox Code Playgroud)

c++ gcc boost-spirit object-files sections

10
推荐指数
1
解决办法
1683
查看次数

我可以将一个编译生成的目标文件链接到另一个编译的目标文件吗?

更具体地说,假设两个编译器都在同一平台上(OS +指令集).但是,其中一个目标文件是由依赖于编译器的代码构成的.另一方面 - 代码是面向对象的并且尊重封装.

我需要这个用于我正在制作的一种框架.目标平台是GCC和Java虚拟机的任何系统.实际上,该框架将在每个平台上编译.使用框架用户的编译器取决于他.

c++ compiler-construction linker object-files

9
推荐指数
2
解决办法
6290
查看次数

C++对象文件的大小取决于什么?

每当我们编译c ++文件时,都会生成一个obj文件.我想知道obj文件的大小取决于哪些因素?

只是为了让我的问题更清楚,例如,一个c ++文件包含一个类声明,这个类有一个整数变量作为数据成员,并且还有一些成员函数.如果我编译这个文件,那么将创建一些某些X大小的obj文件.现在假设我添加了更多数据成员和成员函数,那么obj文件的大小会改变吗?

c++ compiler-construction object-files

9
推荐指数
1
解决办法
1815
查看次数

为什么生成可执行文件需要一个目标文件?

编译代码时,会生成一个目标文件.从该目标文件中,在链接过程中生成可执行文件.

为什么我们需要一个目标文件?对象文件的用途是什么?难道不可能直接生成可执行文件吗?毕竟,我们正在使用可执行文件来运行程序.

linker executable object-files

9
推荐指数
1
解决办法
3532
查看次数

标签 统计

object-files ×10

c++ ×4

compiler-construction ×3

executable ×2

gcc ×2

linker ×2

assembly ×1

blas ×1

boost-spirit ×1

c ×1

d ×1

elf ×1

lapack ×1

ld ×1

llvm ×1

macos ×1

nasm ×1

omf ×1

qmake ×1

qt ×1

sections ×1