visual 스튜디오에서 기호 기호가 여러 번 정의된 해결 방법 (오류 LNK 1169)
이 오류 후 오류 LNK 1169 입니다.
가능한 원인 및 솔루션
일반적으로 이 오류는 정의된 규칙을 끊어야 한다는 것을 의미합니다. 이것은 전체 실행 가능한 파일에 사용된 템플릿, 함수, 유형, 대상이 주어진 대상 파일에 있고 외부에 보이는 대상이나 편지만 정의할 수 있도록 합니다.
다음은 이 오류의 흔한 원인들입니다.
// LNK2005_global.h
int global_int; // LNK2005
가능한 해결 방안은 다음과 같습니다.extern
헤더 파일에서: extern int global_int;
을 정의한 다음 필요에 따라 원본 파일 하나만 초기화합니다: int global_int = 17;
.이 변수는 현재 전역입니다. 모든 원본 파일에서 그것을 성명할 수 있습니다. 예를 들어 헤더 파일을 포함합니다.우리는 변수에 대해 반드시 전역적인 이 해결 방안이 되어야 한다고 건의하지만, 양호한 소프트웨어 공학 실천은 전역적인 변수를 최대한 줄여야 한다.extern
.이것은 현재 대상 파일에서 정의된 역할 영역으로 제한되며, 여러 대상 파일이 자신의 변수 복사본을 가지고 있도록 허용합니다.헤더 파일에 혼동될 수 있는 전역 변수를 정적 변수로 정의하는 것을 권장하지 않습니다.정적 변수의 정의를 원본 파일로 옮기는 것을 더 좋아합니다.static int static_int = 17;
에 성명합니다.이렇게 하면 모든 외부 참조에서 정의를 선택하여 나머지 부분을 사용하고 버릴 수 있음을 링크에 알립니다.병합된 가져오기 라이브러리에서 이 해결 방안은 때때로 유용합니다.그렇지 않으면, 우리는 링크기의 오류를 피하기 위해 이렇게 하는 것을 일종의 방법으로 건의하지 않습니다.__declspec(selectany) int global_int = 17;
.여러 원본 파일에 이 헤더 파일을 포함하면 실행 파일에서 여러 개의 정의 함수를 얻을 수 있습니다.h 복제// LNK2005_func.h
int sample_function(int k) { return 42 * (k % 167); } // LNK2005
가능한 솔루션은 다음과 같습니다.inline
키워드: 복제```h
// LNK2005_func_inline.h
inline int sample_function(int k) { return 42 * (k % 167); }
```
```h
// LNK2005_func_decl.h
int sample_function(int);
```
```cpp
// LNK2005_func_impl.cpp
int sample_function(int k) { return 42 * (k % 167); }
```
// LNK2005_member_outside.h
class Sample {
public:
int sample_function(int);
};
int Sample::sample_function(int k) { return 42 * (k % 167); } // LNK2005
이 문제를 해결하려면 클래스의 구성원 함수를 정의합니다.클래스 성명에 정의된 구성원 함수는 스텔스 내연을 진행했습니다.h복제// LNK2005_member_inline.h
class Sample {
public:
int sample_function(int k) { return 42 * (k % 167); }
};
inline
변수는 두 번 정의되었고 정의마다 다른 값을 가진다.이 문제를 해결하려면 상수를 유일하게 정의하거나 이름공간을 사용하거나 extern const
상수 정의를 구분해야 합니다.oledb.lib(oledb_i.obj) : error LNK2005: _IID_ITransactionObject
already defined in uuid.lib(go7.obj)
를 통해 이 문제를 해결하려면/FORCE:MULTIPLE를 링크 명령줄에 추가하고 uiid를 확보하십시오.lib은 참조의 첫 번째 라이브러리입니다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.