我有一堆项目都可以共享一个"常见"的静态类库.
令我困惑的是,如果我从这些类中创建一个静态库并在我的项目中链接它,我仍然需要在我的主项目中的静态库中的类的标题.
那么静态库有什么好处呢?
像Adobe这样的公司如何处理这个?
我正在开始学习,我想用C++编写自己的语法高亮显示文件.
任何人都可以给我如何去做这个的想法吗?
对我来说,似乎在打开文件时:
需要解析并确定它是什么类型的源文件.信任扩展可能不是万无一失的
一种了解哪些关键字/命令适用于哪种语言的方法
一种确定每个关键字/命令的颜色的方法
我想在OS X上使用C++或Objective-C执行此操作.
任何人都可以提供关于我如何开始这个的指示?
我收到的错误是:
错误:'virtual CPLAT :: CP_Window :: ~CP_Window()'的松散抛出说明符
在析构函数上,我以前从未听说过这一点,一些谷歌搜索说这可能是一个GCC 4问题,我不知道如何解决,因为我需要GCC 4来构建一个通用二进制文件.
我的环境:OS X 10.6,XCode 3.2.2,GCC 4构建通用二进制文件.
有什么问题?
在我预先编译的标题中:
#define DS_BUILD
#define PGE_BUILD
#define DEMO
Run Code Online (Sandbox Code Playgroud)
然后在源头我做:
#if (DS_BUILD && DEMO)
---- code---
#elif (PGE_BUILD && DEMO)
--- code---
#else
--- code ---
#endif
Run Code Online (Sandbox Code Playgroud)
我是否收到错误消息:
错误:运算符'&&'没有正确的操作数
我以前从未见过这个.我在OS X 10.6.3上使用XCode 3.2,GCC 4.2
我有一个模板类:
template <class identifier,class registeredObject>
class FxPairRegistry : public FxRegistry<pair<identifier,registeredObject> >
{
public:
registeredObject GetEntry(identifier, FxBool assertValue = true);
void RegisterInOrder(const pair<identifier,registeredObject> &ob);
typedef typename std::vector<pair<identifier,registeredObject> >::iterator iter;
};
Run Code Online (Sandbox Code Playgroud)
然后我有:
template <class identifier,class registeredObject>
registeredObject FxPairRegistry<identifier,registeredObject>::GetEntry(identifier id, FxBool
assertValue)
{
for (iterator iter = mRegistryList.begin(); iter != mRegistryList.end(); iter++)
{
if ((*iter).first == id)
{
return (*iter).second;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到的错误如下:
error: missing template arguments before 'iter'
error: expected `;' before 'iter'
error: expected primary-expression before '!=' token
error: 'mRegistryList' …Run Code Online (Sandbox Code Playgroud)