C++/Java在打包编译的时候是否会去掉没有用到的头文件呢?

我有一段C++代码,其中引入了很多头文件,但是只用了一个。

1.请问在打包编译的时候是否会去掉没有用到的呢?
2.如果是java语言的话,这样引入不必要的包也会打包去掉吗?

#include <iostream>

#include <jsoncpp/json/json.h>

#include "a.h"

#include "b.h"

using namespace std;

int main() {

int a = 10;

int& ra = a;

cout << &a << endl; // 0x16fdfef5c

cout << &ra << endl; // 0x16fdfef5c

cout << ra <<endl; // 10

}


回答:

打包时不会去掉, 只要引入了就一定会打包, 只是同样不使用


回答:

不会去掉,会生成ast tree,进而影响编译速度,但不会编译到最终的可执行文件中去。


回答:

Java还有点不一样,如果你引入的是第三方包,可以自行选择是否一并放入jar中。但是如果你引入的是 jre 的包,本身存在于 jre 中,不会打包到 jar 里面。


回答:

印象中,反编译过java的class,没用到的 import会去掉

以上是 C++/Java在打包编译的时候是否会去掉没有用到的头文件呢? 的全部内容, 来源链接: utcz.com/p/944915.html

回到顶部