Unresolved external symbol DestroyChildActor(bool)

Hi. We’re working on a 2D sidescroller game. Right now I’m trying to override the Destroyed method. When I do it gives me the following message:

unresolved external symbol “public: void __cdecl UChildActorComponent::DestroyChildActor(bool)” (?DestroyChildActor@UChiuldActorComponent@@QEAAX_N@Z) referenced in function “protected: void __cdecl ABombStarsCharacter::CancelBomb(void)” (?CancelBomb@ABombStarsCharacter@@IEAAXZ)

I’ve provided my .h file for the character that we’ve built using the 2d sidescroller template and the two offending methods of the cpp (the rest has been cut out). I’m using windows with visual studio. My teammate using a macbook and XCode has no problem compiling and running the code.

If I comment out the lines just above the two TODOs in the cancel method in the CPP, it works fine. If I remove my override it also works fine. Why is this compiler error happening? How do I fix it?

BombStarsCharacter.h

#pragma once

#include "PaperCharacter.h"
#include "BombStarsCharacter.generated.h"

// This class is the default character for BombStars, and it is responsible for all
// physical interaction between the player and the world.
//
//   The capsule component (inherited from ACharacter) handles collision with the world
//   The CharacterMovementComponent (inherited from ACharacter) handles movement of the collision capsule
//   The Sprite component (inherited from APaperCharacter) handles the visuals

class UTextRenderComponent;
class ABSPlayerState;

UCLASS(config = Game)
class ABombStarsCharacter : public APaperCharacter
{
	GENERATED_BODY()
		UTextRenderComponent* TextComponent;
	virtual void Tick(float DeltaSeconds) override;
	virtual void Destroyed() override;

public:

	float aimX;
	float aimY;
	bool isHolding;
	bool isThrowing;
	int numContacts;
	int numTimed;
	int numContactsLeft;
	int numTimedLeft;
	int contactIndex;
	int timedIndex;
	int throwForce;
	bool doesLaunch();
	UENUM()
	enum EBombType
	{
		Contact UMETA(DisplayName = "Contact"),
		Timed UMETA(DisplayName = "Timed"),
		None UMETA(DisplayName = "None")
	};
	EBombType heldType;
	void SpawnBomb();
	void SetToContact();
	void SetToTimed();
	void HoldStopped();
	ABombStarsCharacter();
protected:
	// The animation to play while running around
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Animations)
		class UPaperFlipbook* RunningAnimation;

	// The animation to play while idle (standing still)
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Animations)
		class UPaperFlipbook* IdleAnimation;

	UPROPERTY(EditAnywhere, Category = "Timed")
		TSubclassOf <class ABSAbsBomb> TimedBomb;

	UPROPERTY(EditAnywhere, Category = "Contact")
		TSubclassOf <class ABSAbsContact> ContactBomb;

	UPROPERTY()
		ABSPlayerState* State;

	TArray <FVector> AimDirections;

	/** Called to choose the correct animation to play based on the character's movement state */
	void UpdateAnimation();

	// DoubleJump relevant.
	bool bHasDoubleJumpedAlready;
	void Jump() override;
	void Landed(const FHitResult & Hit) override;

	UFUNCTION(BlueprintNativeEvent)
	void OnDoubleJump();

	void CancelBomb();

	void OnDoubleJump_Implementation();

	/** Called for side to side input */
	void MoveRight(float Value);

	void AimRight(float value);
	void AimUp(float value);
	void UpdateCharacter();

	/** Handle touch inputs. */
	void TouchStarted(const ETouchIndex::Type FingerIndex, const FVector Location);

	/** Handle touch stop event. */
	void TouchStopped(const ETouchIndex::Type FingerIndex, const FVector Location);

	// APawn interface
	virtual void SetupPlayerInputComponent(class UInputComponent* InputComponent) override;
	// End of APawn interface

private:
	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Spawning", meta = (AllowPrivateAccess = "true"))
		class UChildActorComponent* BombComponent;
	UPROPERTY()
		TArray<UChildActorComponent*> TimedComponents;
	UPROPERTY()
		TArray<UChildActorComponent*> ContactComponents;

};

BombStarsCharacter.cpp:

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.

#include "BombStars.h"
#include "BombStarsCharacter.h"
#include "BombStarsGameMode.h"
#include "PaperFlipbookComponent.h"
#include "GameFramework/MovementComponent.h"
#include "Components/TextRenderComponent.h"
#include "State/BSPlayerState.h"
#include "BSAbsBomb.h"
#include "BSAbsContact.h"
#include "Engine.h"

DEFINE_LOG_CATEGORY_STATIC(SideScrollerCharacter, Log, All);
//////////////////////////////////////////////////////////////////////////
// ABombStarsCharacter

ABombStarsCharacter::ABombStarsCharacter()    { [...] }
void ABombStarsCharacter::Destroyed()
{
	// Get information before things are destroyed
	ABombStarsGameMode* gameMode = (ABombStarsGameMode*)GetWorld()->GetAuthGameMode();
	AController* controller = this->Controller;
	
	APaperCharacter::Destroyed();

	// Respawn
	if (gameMode && controller)
	{
		gameMode->RespawnInGameCharacter(controller);
	}
}


void ABombStarsCharacter::CancelBomb()
{
	if (isHolding)
	{
		if (heldType == EBombType::Contact)
		{
			ContactComponents[contactIndex]->DestroyChildActor();
			//TODO remove bomb component from array
		}
		else if (heldType == EBombType::Timed)
		{
			TimedComponents[timedIndex]->DestroyChildActor();
			//TODO remove bomb component from array
		}
		heldType = EBombType::None;
		isHolding = false;
	}
}