标签: compilation

如何创建库?

假设我有10*.hpp和*.cpp文件,我需要编译代码.我知道我将需要许多不同代码的相同文件.我可以使用那些允许我简单编写的文件创建一个"包"

#include<mypackage>
Run Code Online (Sandbox Code Playgroud)

代替

#include"file1.hpp"
#include"file2.hpp"
...
#include"file10.hpp"
Run Code Online (Sandbox Code Playgroud)

每次我需要这个"包"时,我都不需要编写一个makefile.

更确切地说,我使用linux.

c++ makefile compilation

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

linux的最小c ++ make文件

我希望找到一个简单的推荐的"minimal"c ++ makefile for linux,它将使用g ++编译和链接单个文件和h文件.理想情况下,make文件甚至不会包含物理文件名,只有.cpp到.o转换.生成这样一个makefile的最佳方法是什么,而不会陷入autoconf的恐怖?

例如,当前目录包含

t.cpp th

我想要一个makefile来创建它.我试过autoconf,但它假设.h是gcc而不是g ++.是的,虽然不是初学者,但我从几年前开始重新学习项目操作的最佳方法,因此我正在寻找自动化方法来为小项目创建和维护makefile.

c++ makefile compilation

22
推荐指数
4
解决办法
3万
查看次数

前向声明对编译时间有多大影响?

我对一些研究或经验数据非常感兴趣,这些数据显示了两个c ++项目之间的编译时间的比较,除了一个在可能的情况下使用前向声明而另一个使用none之外.

与完全包含相比,转发声明会如何彻底改变编译时间?

#include "myClass.h"
Run Code Online (Sandbox Code Playgroud)

class myClass;
Run Code Online (Sandbox Code Playgroud)

有没有研究可以检验这一点?

我意识到这是一个模糊的问题,很大程度上取决于项目.我不希望得到答案的难数.相反,我希望有人可以指导我做一个关于此的研究.

我特别担心的项目有大约1200个文件.每个cpp平均包含5个头.每个标头平均包含5个标头.这回归了大约4个层次.似乎对于编译的每个cpp,必须打开和解析大约300个头文件,有时多次.(包含树中有许多重复项.)有警卫,但文件仍然打开.每个cpp都是用gcc单独编译的,所以没有头缓存.

为了确保没有人误解,我当然主张在可能的情况下使用前瞻性声明.但是,我的雇主禁止他们.我试图反对这个立场.

感谢您提供任何信息.

c++ compilation

22
推荐指数
4
解决办法
6881
查看次数

为什么在C中的2个文件中无法定义变量两次

为什么我不能拥有一个; 在2个C文件中.我打算将两者结合起来制作可执行文件.我从经验中知道我不能,但我想找到标准C99所说的位置并密封我的理解.

我正在阅读http://www.open-std.org/jtc1/sc22/wg...docs/n1256.pdf中的 ISO C99标准.它在第42页说:

6.2.2识别者的联系

1可以通过一个称为连接的过程,在不同的范围或相同的范围内多次声明一个标识符来引用同一个对象或函数.有三种链接:外部,内部和无.

2在构成整个程序的翻译单元和库的集合中,具有外部链接的特定标识符的每个声明表示相同的对象或功能.在一个翻译单元内,具有内部链接的标识符的每个声明表示相同的对象或功能.没有链接的标识符的每个声明表示唯一的实体.

3如果对象或函数的文件范围标识声明包含存储类指定静态,则标识符具有内部链接.

4对于在存储类规范外部声明的标识符,在该范围内可以看到该标识符的先前声明,如果先前声明指定内部或外部链接,则后面声明中标识符的链接与在先前声明中指定的联系.如果没有先前的声明可见,或者如果先前的声明没有指定链接,则标识符具有外部链接.

5如果函数的标识符声明没有存储类规范,则其链接的确定就像是使用存储类指定器extern声明的.如果对象的标识符声明具有文件范围且没有存储 - 特定的,它的联系是外在的.

看完之后看起来如果我声明一个变量就像说int a; 在2个源文件中.然后根据规则5和4都有外部链接,然后根据规则2,两者都应该引用同一个对象.那为什么编译器会产生问题.在标准中,暗示我们不能在2个源文件中声明这样,这应该抛出编译错误.首先,在标准中,它表示int a是一个定义,然后它表示2个定义实例是不可接受的.我知道我的经验是不允许的,但如果我能在标准中找到并密封我的理解,那对我来说非常有用.

请将以下标准的摘录与此规则相结合?或者我错过了胶水?:

声明规定了一组标识符的解释和属性.标识符的定义是对该标识符的声明: - 对于一个对象,导致为该对象保留存储; - 用于功能,包括功能体; - 对于枚举常量或typedef名称,是标识符的(唯一)声明.

正如5.1.1.1中所讨论的,预处理后的程序文本单元是一个翻译单元,它由一系列外部声明组成.这些被描述为"外部",因为它们出现在任何功能之外(因此具有文件范围).正如6.7中所讨论的那样,一个声明也会导致为一个对象或由标识符命名的函数保留存储,这是一个定义.

外部定义是外部声明,它也是函数(除了内联定义)或对象的定义.如果在表达式中使用了使用外部链接声明的标识符(除了作为sizeof运算符的操作数的一部分,其结果是整数常量),整个程序中的某个地方应该只有一个外部定义用于标识符; 否则,不得超过一个.

谢谢.

c standards iso compilation

22
推荐指数
1
解决办法
2645
查看次数

咖啡脚本编译

我正在寻找最简单的方法来自动将咖啡脚本重新编译为JS.

阅读文档,但仍然有麻烦得到我想要的.

我需要它来查看src/任何*.coffee文件修改的文件夹,并将它们编译成串联的javascript文件lib/something.js.

不知何故不能将观看,编译和连接结合在一起.:/

javascript compilation coffeescript

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

gcc的-pg标志如何工作?

我试图了解编译C代码时-pg(或-p)标志如何工作gcc.

官方gcc文档仅说明:

-pg
生成额外的代码以编写适用于分析程序gprof的配置文件信息.编译所需数据的源文件时必须使用此选项,并且在链接时也必须使用它.

这真的让我感兴趣,因为我正在对分析器进行一项小型研究 - 试图选择最适合这项工作的工具.

gcc compilation compiler-flags gprof

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

如何在命令提示符下运行Java程序

我创建了一个Java项目来调用Web服务.它有一个Main java文件和另一个类文件.我已经为HTTP客户端使用了一些jar文件.
在Eclipse中运行良好.我需要通过传递一些参数在命令提示符下运行Java程序.
在命令提示符下,我转到包含主java和子类java文件的src文件夹,并给出了以下命令

javac mainjava.java    
Run Code Online (Sandbox Code Playgroud)

我收到了以下错误

mainjava.java:14:找不到符号
符号:class SubClass

这里SubClass是我用来调用Web服务的另一个java类文件.

如何通过传递参数来运行程序?

java compilation command-prompt command-line-arguments

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

如何从命令行编译APK?

我有兴趣按需制作Android应用程序.根据客户端的要求,我的网站会将JSON文件直接发送给我在Delphi中创建的Windows应用程序.这个将文件保存在Android应用程序源文件夹中,然后执行命令行告诉Android编译器生成APK文件并将其发送到我的客户端,所有这些都没有我的存在.

Android项目是用MotoDev制作的.它使用我的root中的Android SDK.

如何从我的Delphi程序中配置命令行来实现这一目的?

我还需要更改清单以放置新版本号,以便它不与其他客户端版本冲突.

windows delphi automation android compilation

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

如何将我的Python 3应用程序编译为.exe?

如何将我的Python应用程序转换为.exe?我制作了一个程序,tkinter并想知道如何让其他人使用它.我使用Python 3.3.我搜索了一下但找不到任何东西.

python exe compilation tkinter python-3.3

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

Golang - "go run main.go"和编译之间的区别

在Go中编写了一些脚本后,我问自己,.go-file 的编译与后来的执行和go run FILE.go命令在性能等方面是否有任何区别.

如果我使用这些方法之一启动Web服务,是否有任何优势?

performance command-line compilation go

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