我试图将COLLADA DOM库作为一个外部依赖项包含到我正在开发的程序(PyMOL)中,最终目标是支持以COLLADA(.dae)格式导出三维场景。我能够成功地编译所有的东西,直到我将#include <Collada14Dom/dae.h>
添加到相关的源文件;也就是说,如果我注释掉那一行,一切都会构建得很好。我正在开发一款运行10.8.5和Xcode5的Mac电脑。在
到目前为止,我已经从Sourceforge安装了COLLADA DOM v2.2,通过make
(在'DOM'子目录中)构建了DOM,并将框架安装到/Library/Frameworks/Collada14Dom.框架通过make install
。在
我还下载了Boost v1.55.0,并通过./bootstrap
、./b2
、./b2 install
安装,如here所示。在
当我在我的COLLADA.cpp
文件中添加以下行之后进行编译时,问题就出现了。在
#include <Collada14Dom/dae.h>
编译后,我得到一系列“冲突类型”错误:
^{pr2}$ 显然,GCC对C++标题有一些问题,但我不确定如何解决这个问题。在一个重要的考虑是,在项目代码库中没有其他C++代码。(没有基于C语言的COLLADA库,我真的不想在这里重新发明轮子。)所以似乎有一些配置需要发生——一些设置设置.py也许吧。有什么方法可以告诉setup.py
使用GCC以外的东西进行编译吗?在
不管怎样,我可以用以下方法完全重现这个问题(在安装COLLADA DOM和Boost之后):
在sscce.cpp公司公司名称:
#ifdef __cplusplus
extern "C" {
#endif
#include <Collada14Dom/dae.h>
int main(){
return 0
}
#ifdef __cplusplus
} // END extern "C"
#endif
如果我试图使用gcc sscce.cpp
进行构建,则会产生与完整程序相同的“冲突类型”错误。奇怪的是(无论如何,对我来说),我也会使用g++ sscce.cpp
得到相同的错误,所以我想这可能不是严格意义上的GCC问题。在
我错过了什么?希望有人以前见过这种情况,而且您实际上不必安装colladadom和Boost来提供建议,因为这两个库都需要一些时间来构建。一如既往,任何帮助都将不胜感激。在
谢谢!在
相关问题 更多 >
编程相关推荐