gcc 다중 정의 ... 릴리스 전용

Mijin

헤더 파일 내에 함수를 정의했습니다. 디버그에서는 잘 컴파일되고 연결됩니다. 릴리스에서는 헤더를 포함하는 모든 클래스의 모든 개체 파일에 대해 " 'blah :: blah (blah & blah)'의 다중 정의"라는 컴파일 오류가 발생합니다.

gcc-4.8.1을 사용하고 있습니다. 실제 코드를 게시 할 수 없습니다.이 버전에는 무고한 사람을 보호하기 위해 이름이 변경되었습니다.

#ifndef INCLUDE_SMELLS_FUNNY
#define INCLUDE_SMELLS_FUNNY

#include "ParentClass.h"
#include "ChildClassA.h"
#include "ChildClassB.h"

namespace someplace {

bool smellsFunny(const ParentClass& someData) {

  // All ChildClass As smell funny
  if(dynamic_cast<const ChildClassA*>(&someData)) {
    return true;
  }

  // If ChildClass B, need to check if smells funny
  const ChildClassB* childB = dynamic_cast<const ChildClassB*>(&someData)
   if(childB) {
    return childB->MoreThanAWeekOld();
  }

  // Default is smells OK
  return false;
}

}

#endif // INCLUDE_SMELLS_FUNNY

나는 어떤 gcc 플래그가 책임이 있는지 찾을 수 없었습니다. 물론 수정은 구현을 cpp 파일로 옮기는 것입니다. 그러나 이것이 왜 필요합니까? 이것이 릴리스에서만 발생하는 이유는 무엇입니까?

Vlad / 모스크바

정확히 말할 수는 없지만 디버그 모드에서는 함수가 인라인 함수로 간주됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

AVR gcc 버전 <gcc 릴리스 버전-왜?

분류에서Dev

GCC 함수 다중 버전 관리 및 네임 스페이스

분류에서Dev

시스템 1 대신 -l에 사용자 정의 라이브러리를 사용하도록 GCC에 어떻게 알릴 수 있습니까?

분류에서Dev

릴리스 중에 버전이 지정되지 않은 테스트 리소스를 복사하는 방법 :

분류에서Dev

Azure DevOps Release Task를 사용하여 의도적으로 릴리스 중지

분류에서Dev

이전 릴리스의 패키지 버전에 대한 정보?

분류에서Dev

디버그 및 릴리스 버전에서 BOOL 변수의 다른 값

분류에서Dev

다음 Ubuntu 릴리스의 패키지 버전을 찾을 수있는 위치

분류에서Dev

GetAsyncKeyState는 릴리스 버전에서 임의로 작동합니다.

분류에서Dev

Qt Creator의 릴리스 모드에서 중단 점 설정

분류에서Dev

다양한 마스터 및 릴리스 분기가있는 릴리스 버전 용 Git 태그

분류에서Dev

AzureDevops 릴리스 정의에 JSON 변수 전달

분류에서Dev

Facebook 용 Android의 해시 키 릴리스

분류에서Dev

Android Gradle-서로 다른 버전의 디버그 및 릴리스 리소스 모두 보유

분류에서Dev

NIS (Network Information System) 정보-Ubuntu의 다른 릴리스

분류에서Dev

Azure 릴리스 파이프 라인의 이전 단계에서 전달 된 변수를 활용할 수 없습니다.

분류에서Dev

Ubuntu는 릴리스 사이에 새 버전의 GCC를 패키지 저장소로 푸시 한 적이 있습니까?

분류에서Dev

Ubuntu는 릴리스 사이에 새 버전의 GCC를 패키지 저장소로 푸시 한 적이 있습니까?

분류에서Dev

Linux Mint에서 GCC의 최신 안정 릴리스를 설치하는 방법은 무엇입니까?

분류에서Dev

안정적인 릴리스의 라이브러리 버전 목록

분류에서Dev

이전 Ubuntu 릴리스의 최신 apt 리포지토리

분류에서Dev

다중 모듈 프로젝트에서 Maven 릴리스 플러그인 사용

분류에서Dev

GCC / 링커 오류 : extern 키워드를 사용하면 중복 정의가 제공됩니다.

분류에서Dev

필요한 애플리케이션에 이전 버전의 GCC 사용

분류에서Dev

Azure DevOps REST API를 사용한 릴리스 정의 업데이트가 이전 복사본에서 실패 함

분류에서Dev

치명적인 오류 컴파일 : 릴리스 버전 10.0.1은 인 IntelliJ의 IDEA와 메이븐을 사용하여 지원되지 않습니다

분류에서Dev

QT 5.0.0의 전체 릴리스를 사용하고 있기 때문에 qt-components-ubuntu를 설치할 수 없습니다.

분류에서Dev

인터페이스 블록의 "파생 유형이 정의되기 전에 사용 중입니다."

분류에서Dev

정적 NSMutableArray 및 다중 스레드 사용의 의미

Related 관련 기사

  1. 1

    AVR gcc 버전 <gcc 릴리스 버전-왜?

  2. 2

    GCC 함수 다중 버전 관리 및 네임 스페이스

  3. 3

    시스템 1 대신 -l에 사용자 정의 라이브러리를 사용하도록 GCC에 어떻게 알릴 수 있습니까?

  4. 4

    릴리스 중에 버전이 지정되지 않은 테스트 리소스를 복사하는 방법 :

  5. 5

    Azure DevOps Release Task를 사용하여 의도적으로 릴리스 중지

  6. 6

    이전 릴리스의 패키지 버전에 대한 정보?

  7. 7

    디버그 및 릴리스 버전에서 BOOL 변수의 다른 값

  8. 8

    다음 Ubuntu 릴리스의 패키지 버전을 찾을 수있는 위치

  9. 9

    GetAsyncKeyState는 릴리스 버전에서 임의로 작동합니다.

  10. 10

    Qt Creator의 릴리스 모드에서 중단 점 설정

  11. 11

    다양한 마스터 및 릴리스 분기가있는 릴리스 버전 용 Git 태그

  12. 12

    AzureDevops 릴리스 정의에 JSON 변수 전달

  13. 13

    Facebook 용 Android의 해시 키 릴리스

  14. 14

    Android Gradle-서로 다른 버전의 디버그 및 릴리스 리소스 모두 보유

  15. 15

    NIS (Network Information System) 정보-Ubuntu의 다른 릴리스

  16. 16

    Azure 릴리스 파이프 라인의 이전 단계에서 전달 된 변수를 활용할 수 없습니다.

  17. 17

    Ubuntu는 릴리스 사이에 새 버전의 GCC를 패키지 저장소로 푸시 한 적이 있습니까?

  18. 18

    Ubuntu는 릴리스 사이에 새 버전의 GCC를 패키지 저장소로 푸시 한 적이 있습니까?

  19. 19

    Linux Mint에서 GCC의 최신 안정 릴리스를 설치하는 방법은 무엇입니까?

  20. 20

    안정적인 릴리스의 라이브러리 버전 목록

  21. 21

    이전 Ubuntu 릴리스의 최신 apt 리포지토리

  22. 22

    다중 모듈 프로젝트에서 Maven 릴리스 플러그인 사용

  23. 23

    GCC / 링커 오류 : extern 키워드를 사용하면 중복 정의가 제공됩니다.

  24. 24

    필요한 애플리케이션에 이전 버전의 GCC 사용

  25. 25

    Azure DevOps REST API를 사용한 릴리스 정의 업데이트가 이전 복사본에서 실패 함

  26. 26

    치명적인 오류 컴파일 : 릴리스 버전 10.0.1은 인 IntelliJ의 IDEA와 메이븐을 사용하여 지원되지 않습니다

  27. 27

    QT 5.0.0의 전체 릴리스를 사용하고 있기 때문에 qt-components-ubuntu를 설치할 수 없습니다.

  28. 28

    인터페이스 블록의 "파생 유형이 정의되기 전에 사용 중입니다."

  29. 29

    정적 NSMutableArray 및 다중 스레드 사용의 의미

뜨겁다태그

보관