Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O símbolo «símbolo» definido em «filename_1.obj» é importado por «filename_2.obj» na função «função»
Observações
__declspec(dllimport) foi especificado para um símbolo mesmo que o símbolo é definido em um arquivo de objeto na mesma imagem. Remova o __declspec(dllimport) modificador para resolver este aviso.
símbolo é o nome do símbolo definido na imagem. function é a função que está importando o símbolo.
Este aviso não aparece quando você compila usando a opção /clr .
Example
LNK4217 também pode ocorrer se você tentar vincular dois módulos juntos, quando, em vez disso, você deve compilar o segundo módulo com a biblioteca de importação do primeiro módulo.
// main.cpp
__declspec(dllimport) void func();
int main()
{
func();
return 0;
}
E depois
// tt.cpp
// compile with: /c
void func() {}
A tentativa de compilar esses dois módulos, como mostrado aqui, resultará em LNK4217:
cl.exe /c main.cpp tt.cpp
link.exe main.obj tt.obj
Para corrigir o erro, depois de compilar os dois arquivos, passe tt.obj para lib.exe para criar um arquivo .lib e, em seguida, vincule main.obj com tt.lib como mostrado aqui:
cl.exe /c main.cpp tt.cpp
lib.exe tt.obj /export:func /def
link.exe main.obj tt.lib
Consulte também
Aviso das Ferramentas de Ligação LNK4049
Aviso de ferramentas de vinculação LNK4286
dllexport, dllimport