我正在编写代码,但是当编译时,由于main.o和mtp_wrapper.o中的重复符号,我确实遇到了问题。重复的符号是_file_extension_type。我编码在C++和Qt重复的符号拱X86_64
的file_extension_type是在如下面的定义mtp_wrapper.h结构的阵列的:typedef
struct {
char *file_extension;
LIBMTP_filetype_t file_type;
} MTP_file_extension;
MTP_file_extension file_extension_type [] = {
{"wav", LIBMTP_FILETYPE_WAV},
{"mp3", LIBMTP_FILETYPE_MP3},
{"wma", LIBMTP_FILETYPE_WMA},
{"ogg", LIBMTP_FILETYPE_OGG},
{"mp4", LIBMTP_FILETYPE_MP4},
{"wmv", LIBMTP_FILETYPE_WMV},
{"avi", LIBMTP_FILETYPE_AVI},
{"mpeg", LIBMTP_FILETYPE_MPEG}}
,这是在其中值我们显示的唯一地方。
mtp_wrapper.cpp包含我所有的类定义,默认情况下包括mtp_wrapper.h
main.cpp中还包括mtp_wrapper.h但我需要它的实例化我班在这样的主要如下:
int main(int argc, char *argv[])
{
....
// Detecting puls device
//mtp_wrapper MyMtpPuls;
mtp_wrapper *MyMtpPuls = new mtp_wrapper;
error = MyMtpPuls->ConnectPulsDevice();
....
我想这来,我包括mtp_wrapper.cpp和main.cpp中mtp_wrapper.h事实..
,但如果我尝试在公共类中添加阵列这样的定义如:
Class xxx : yyy {
public:
MTP_file_extension file_extension_type [];
该问题消失,但无法使用函数sizeof。
在mtp_wrapper.cpp我需要知道包含在file_Extension_type的最佳途径数量元素是我在声明数组来划分的sizeof(file_extension_type)通过的sizeof(MTP_file_extension)
,但只要班级sizeof是不可用的。
任何想法???
我在复制目的上看到了很多主题,但没有一个真正解决我的问题。
谢谢我改变它,但它仍然失败 – Seb