exe往往要和相关的dll放在一起,a.exe调用b.dll,b.dll调用一系列dll:x,y,z....
要想让a正常运行,必须把所有的生成目录都放在同一个目录
另外公司前辈也教我一种,在程序中加载设置环境变量的方法,来将dll可以被找到:
void ExptOptimization::AddEnvByDllPath()
{
char *path, *ptr;
int i = 0;
ptr = getenv("PATH");
QString strPtr = ptr;
QFileInfo dllFile(m_strEmulatorDllPath);
if(!dllFile.exists())
return;
QString strDllPath = dllFile.dir().path();
strDllPath.replace("/","\\");
if(!strPtr.contains(strDllPath))
{
QString strPath = "PATH=" + strPtr + ";" + strDllPath;
strPath = "PATH=" + strPtr + strPath;
QByteArray byte = strPath.toLocal8Bit();
char* newPath = byte.data();
putenv(newPath);
}
}
另外在属性——框架和引用——添加新引用
导师曾经用最直接的方法,右键工程——添加现有项,将缺少的lib加入后,就没有无法解析的错误了
在工程中,当多个工程的时候,特别要注意设定自己的各个路径要统一一致,简单明了,不要使用绝对路径。。切记
相对路径,相对的是当前执行程序文件所在的文件夹