程序链接静态lib时,会将使用到的code部分包含进最终的exe或dll中,如果lib中定义了全局变量,但这个全局变量并没有被其他code使用到,那么最终的exe/dll会执行这个全局变量的定义语句吗?
[Windows 平台] VS2008
创建TestLib工程,configuration type选择static library(lib)。创建一个简单的类People。
TestLib.h
#include<string>
class People
{
public:
People(std::string name);
~People();
std::string _name;
};
TestLib.cpp
构造函数打印语句。定义了一个全局变量g_Person。
#include "stdafx.h"
#include <iostream>
#include "TestLib.h"
People::People(std::string name)
{
std::cout << "Create a new People instance: " << name << std::endl;
_name = name;
}
People::~People()
{
}
People g_Person("Lily");
再创建一个C++ console工程TestLibConsole。链接TestLib(solution property的project dependencies中设置)。
#includ