• 5973阅读
  • 3回复

生成dll库的问题 [复制链接]

上一主题 下一主题
离线huxueqing
 

只看楼主 倒序阅读 楼主  发表于: 2008-09-16
— 本帖被 XChinux 执行加亮操作(2008-09-16) —
我的qt想生成dll,工程文件是这样写的 TEMPLATE = lib  CONFIG += shared 编译的时候出现一堆  error LNK2001: 无法解析的外部符号 我不编译成库的时候是 好使的~~不知道怎么弄了 有人说加 __declspec(dllexport)  我大约是十几个类吧 我主要是调用一个类的构造函数,别的类都在这个类里面调用 那__declspec(dllexport) 这个是应该怎么写 都写在哪里?我是新手 可能表达的不太明白
离线huxueqing

只看该作者 1楼 发表于: 2008-09-16
自己ding
离线huxueqing

只看该作者 2楼 发表于: 2008-09-16
继续顶
离线XChinux

只看该作者 3楼 发表于: 2008-09-16
给你个示例:


#ifndef CHINUXTEAM_EXCELINFC_HPP
#define CHINUXTEAM_EXCELINFC_HPP

#include <QtGlobal>
#ifdef Q_WS_WIN
#ifdef BUILDING_EXCELINFC_DLL
#define CTDLL_EXCELINFC_API __declspec(dllexport)
#else
#define CTDLL_EXCELINFC_API __declspec(dllimport)
#endif  // BUILDING_EXCELINFC_DLL
#else
#define CTDLL_EXCELINFC_API
#endif  // Q_WS_WIN

#include <QtCore>
#include <QtXml>

namespace ChinuxTeam
{
class CTDLL_EXCELINFC_API ExcelInfc
{
public:
  ExcelInfc(const QString &xmlFile);
  ~ExcelInfc();
  bool isValid() const;
  ////////////////////后面代码省略 
};
}

#endif // #ifndef CHINUXTEAM_EXCELINFC_HPP

这个头文件定义的导出类既在编译DLL时使用,也在使用此DLL做链接时使用,Win/Lin下通用。
在编译此DLL时,增加宏定义BUILDING_EXCELINFC_DLL,在使用此DLL时,直接包含此头文件,链接时链接此DLL即可(不定义BUILDING_EXCELINFC_DLL宏)
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个