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