Problema ao criar FK

boa noite galera!!

alguem pode me da uma dica de como resolver este problema, esta aparecendo este erro no mysql Cannot add foreign key constraint erro 1215, ja fiz umas pesquisas conclusão por alto e por que sao de tipos diferentes mas nao sao…

tenho esta tabela

CREATE TABLE gcp21_historico_Mov_produto (
  gcp21_id_mov_prod INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  gcp07_ent_prod_gcp07_idnf INTEGER UNSIGNED NOT NULL,
  gcp13_item_ent_gcp13_id_item INTEGER UNSIGNED NOT NULL,
  gcp15_iten_mov_gcp14_movimentacao_gcp_14_id_mov INTEGER UNSIGNED NOT NULL,
  gcp15_iten_mov_gcp14_movimentacao_gcp08_documento_id INTEGER UNSIGNED NOT NULL,
  gcp15_iten_mov_gcp15_id_itens_mov INTEGER UNSIGNED NOT NULL,
  gcp15_iten_mov_gcp14_movimentacao_gcp03_colaborador_id INTEGER UNSIGNED NOT NULL,
  gcp15_iten_mov_gcp14_movimentacao_gcp02_cliente_id INTEGER UNSIGNED NOT NULL,
  gcp15_iten_mov_gcp14_mov_gcp03_col_gcp21_pessoa_gcp020 INTEGER UNSIGNED NOT NULL,
  gcp15_iten_mov_gcp14_mov_gcp02_cli_gcp21_pessoa_gcp020_id INTEGER UNSIGNED NOT NULL,
  gcp20_data_movi DATE NOT NULL,
  gcp20_hora_mov TIME NOT NULL,
  gcp20_qt_entrada NUMERIC(18,4) NULL,
  gcp20_qt_saida NUMERIC(18,4) NULL,
  PRIMARY KEY(gcp21_id_mov_prod, gcp07_ent_prod_gcp07_idnf, gcp13_item_ent_gcp13_id_item, gcp15_iten_mov_gcp14_movimentacao_gcp_14_id_mov, gcp15_iten_mov_gcp14_movimentacao_gcp08_documento_id, gcp15_iten_mov_gcp15_id_itens_mov, gcp15_iten_mov_gcp14_movimentacao_gcp03_colaborador_id, gcp15_iten_mov_gcp14_movimentacao_gcp02_cliente_id, gcp15_iten_mov_gcp14_mov_gcp03_col_gcp21_pessoa_gcp020, gcp15_iten_mov_gcp14_mov_gcp02_cli_gcp21_pessoa_gcp020_id),
  INDEX gcp21_mov_produto_FKIndex1(gcp07_ent_prod_gcp07_idnf),
  INDEX gcp21_mov_produto_FKIndex2(gcp13_item_ent_gcp13_id_item),
  INDEX gcp21_mov_produto_FKIndex3(gcp15_iten_mov_gcp15_id_itens_mov, gcp15_iten_mov_gcp14_movimentacao_gcp08_documento_id, gcp15_iten_mov_gcp14_movimentacao_gcp_14_id_mov, gcp15_iten_mov_gcp14_movimentacao_gcp02_cliente_id, gcp15_iten_mov_gcp14_movimentacao_gcp03_colaborador_id, gcp15_iten_mov_gcp14_mov_gcp02_cli_gcp21_pessoa_gcp020_id, gcp15_iten_mov_gcp14_mov_gcp03_col_gcp21_pessoa_gcp020),
  FOREIGN KEY(gcp07_ent_prod_gcp07_idnf)
    REFERENCES gcp07_ent_prod(gcp07_idnf)
      ON DELETE CASCADE
      ON UPDATE RESTRICT,
  FOREIGN KEY(gcp13_item_ent_gcp13_id_item)
    REFERENCES gcp13_item_ent(gcp13_id_item)
      ON DELETE RESTRICT
      ON UPDATE CASCADE,

//quando tiro essa parte  a tabela e criada, 
  FOREIGN KEY(gcp15_iten_mov_gcp15_id_itens_mov, gcp15_iten_mov_gcp14_movimentacao_gcp08_documento_id, gcp15_iten_mov_gcp14_movimentacao_gcp_14_id_mov, gcp15_iten_mov_gcp14_movimentacao_gcp02_cliente_id, gcp15_iten_mov_gcp14_movimentacao_gcp03_colaborador_id, gcp15_iten_mov_gcp14_mov_gcp02_cli_gcp21_pessoa_gcp020_id, gcp15_iten_mov_gcp14_mov_gcp03_col_gcp21_pessoa_gcp020)
    REFERENCES gcp15_iten_mov(gcp15_id_itens_mov, gcp14_movimentacao_gcp08_documento_gcp08_id_documento, gcp14_movimentacao_gcp_14_id_mov, gcp14_movimentacao_gcp02_cliente_gcp02_id_ClientePK, gcp14_movimentacao_gcp03_colaborador_gcp03_id_colaboradorPK, gcp14_movimentacao_gcp02_cliente_gcp21_pessoa_gcp020_idgcp020_pessoa, gcp14_movimentacao_gcp03_colaborador_gcp21_pessoa_gcp020_idgcp020_pessoa)
      ON DELETE RESTRICT
      ON UPDATE CASCADE
);

a tabela que se refere a FK acima

DROP TABLE IF EXISTS `dboas`.`gcp15_iten_mov`;
CREATE TABLE  `dboas`.`gcp15_iten_mov` (
  `gcp15_id_itens_mov` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `gcp14_movimentacao_gcp08_documento_gcp08_id_documento` int(10) unsigned NOT NULL,
  `gcp14_movimentacao_gcp_14_id_mov` int(10) unsigned NOT NULL,
  `gcp14_movimentacao_gcp02_cliente_gcp020_pessoa` int(11) NOT NULL,
  `gcp14_movimentacao_gcp03_col_gcp020_pessoa` int(11) NOT NULL,
  `gcp14_movimentacao_gcp02_cliente_gcp02_id_ClientePK` int(10) unsigned NOT NULL,
  `gcp14_movimentacao_gcp03_colaborador_gcp03_id_colaboradorPK` int(10) unsigned NOT NULL,
  `gcp01_produto_gcp01_id_produto_PK_produtp` int(10) unsigned NOT NULL,
  `gcp15_vlr_venda` decimal(18,4) NOT NULL,
  `gcp15_vlr_desc` decimal(18,2) DEFAULT NULL,
  `gcp15_qnt_itens` decimal(18,2) NOT NULL,
  `gcp15_vlr_total` decimal(18,2) NOT NULL,
  PRIMARY KEY (`gcp15_id_itens_mov`,`gcp14_movimentacao_gcp08_documento_gcp08_id_documento`,`gcp14_movimentacao_gcp_14_id_mov`,`gcp14_movimentacao_gcp02_cliente_gcp020_pessoa`,`gcp14_movimentacao_gcp03_col_gcp020_pessoa`,`gcp14_movimentacao_gcp02_cliente_gcp02_id_ClientePK`,`gcp14_movimentacao_gcp03_colaborador_gcp03_id_colaboradorPK`),
  KEY `gcp15_iten_mov_FKIndex1` (`gcp14_movimentacao_gcp_14_id_mov`,`gcp14_movimentacao_gcp08_documento_gcp08_id_documento`,`gcp14_movimentacao_gcp03_col_gcp020_pessoa`,`gcp14_movimentacao_gcp02_cliente_gcp020_pessoa`,`gcp14_movimentacao_gcp03_colaborador_gcp03_id_colaboradorPK`,`gcp14_movimentacao_gcp02_cliente_gcp02_id_ClientePK`),
  KEY `gcp15_iten_mov_FKIndex2` (`gcp01_produto_gcp01_id_produto_PK_produtp`),
  CONSTRAINT `gcp15_iten_mov_ibfk_1` FOREIGN KEY (`gcp14_movimentacao_gcp_14_id_mov`, `gcp14_movimentacao_gcp08_documento_gcp08_id_documento`, `gcp14_movimentacao_gcp03_col_gcp020_pessoa`, `gcp14_movimentacao_gcp02_cliente_gcp020_pessoa`, `gcp14_movimentacao_gcp03_colaborador_gcp03_id_colaboradorPK`, `gcp14_movimentacao_gcp02_cliente_gcp02_id_ClientePK`) REFERENCES `gcp14_movimentacao` (`gcp_14_id_mov`, `gcp08_documento_gcp08_id_documento`, `gcp03_colaborador_gcp020_pessoa_gcp020_idgcp020_pessoa`, `gcp02_cliente_gcp020_pessoa_gcp020_idgcp020_pessoa`, `gcp03_colaborador_gcp03_id_colaboradorPK`, `gcp02_cliente_gcp02_id_ClientePK`) ON UPDATE CASCADE,
  CONSTRAINT `gcp15_iten_mov_ibfk_2` FOREIGN KEY (`gcp01_produto_gcp01_id_produto_PK_produtp`) REFERENCES `gcp01_produto` (`gcp01_id_produto_PK_produtp`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

se alguem poder me da umas dicas de como resolver agradeço…