[Solved] Plugin Error: Undefined symbols for architecture x86_64 | Private Folders

I’m having a problem with plugins that is pretty simple to reproduce, but I don’t know how to solve it.


CompilerResultsLog: New page: Compilation - Dec 19, 2018, 10:52:18 PM
CompilerResultsLog: Running Mono…
CompilerResultsLog: Found mono via known Mono.framework path
CompilerResultsLog: Running installed mono, version: Mono JIT compiler version (2018-06/b63e5378e38 Mon Nov 19 18:08:09 EST 2018)
CompilerResultsLog: /Users/Shared/Epic Games/UE_4.21/Engine /Users/Shared/Epic Games/UE_4.21/Engine/Binaries/Mac
CompilerResultsLog: Compiling game modules for hot reload
CompilerResultsLog: Performing 2 actions (8 in parallel)
CompilerResultsLog: [1/2] Compile ExampleGameModeBase.cpp
CompilerResultsLog: [2/2] Link UE4Editor-Example-4124.dylib
CompilerResultsLog: Undefined symbols for architecture x86_64:
CompilerResultsLog: “UExampleBlueprintFunctionLibrary::ExampleHelloWord()”, referenced from:
CompilerResultsLog: AExampleGameModeBase::BeginPlay() in ExampleGameModeBase.cpp.o
CompilerResultsLog: ld: symbol(s) not found for architecture x86_64
CompilerResultsLog: clang: error: linker command failed with exit code 1 (use -v to see invocation)
CompilerResultsLog: ERROR: UBT ERROR: Failed to produce item: /Users/Games/Unreal/Example/Binaries/Mac/UE4Editor-Example-4124.dylib
CompilerResultsLog: (see …/Programs/UnrealBuildTool/Log.txt for full exception trace)
CompilerResultsLog: Total build time: 10,17 seconds (Local executor: 0,00 seconds)

How to reproduce the error:

1 - New Project → C++ → Basic Code → “Example” → Create Project
2 - Unreal Editor → Edit → Plugins → New Plugin → Third Party Library | Name: “ExamplePlugin” → Create Plugin
3 - Add New → New C++ Class… → Parent: UBlueprintFunctionLibrary → Next → Name: ExampleBlueprintFunctionLibrary | ExamplePlugin (Runtime) | Public ( Classes doesn’t work either ) → Create Class
4 - In ExampleBlueprintFunctionLibrary.h:

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "ExampleBlueprintFunctionLibrary.generated.h"

class EXAMPLEPLUGIN_API UExampleBlueprintFunctionLibrary : public UBlueprintFunctionLibrary

    UFUNCTION(BlueprintCallable, Category = "ExamplePlugin")
    static void ExampleHelloWord();

5 - In ExampleBlueprintFunctionLibrary.cpp:

// Fill out your copyright notice in the Description page of Project Settings.

#include "ExampleBlueprintFunctionLibrary.h"

static void UExampleBlueprintFunctionLibrary::ExampleHelloWord()
    UE_LOG(LogTemp, Warning, TEXT("Plugin: Hello world!!"));

6 - In Example.Build.cs add:


7 - In ExampleGameModeBase.h add:

    virtual void BeginPlay() override;

8 - In ExampleGameModeBase.cpp:

// Fill out your copyright notice in the Description page of Project Settings.

#include "ExampleGameModeBase.h"
#include "ExampleBlueprintFunctionLibrary.h"

void AExampleGameModeBase::BeginPlay()


9 - Change World Settings → GameMode: ExampleGameModeBase.
10 - Finally: Compile!


This is happening because the cpp file is not being “linked” by the linker.
But I do not know how to solve it. If I change the file ExampleBlueprintFunctionLibrary.h it works:

UFUNCTION(BlueprintCallable, Category = "ExamplePlugin")
static void ExampleHelloWord()
    UE_LOG(LogTemp, Warning, TEXT("Plugin: Hello world!!"));

Sorry for the long post.
Could someone help me understand why the cpp file is not being “linked”?

Thank you very much for your time!

Hello, seems like a mac thing. Can you check out the following link and look at the last post and see if that helps https://answers.unrealengine.com/questions/17433/unparsed-class-scriptkismetblueprintpalettefavorit.html#answer-32243

Hi @Garner,
Even by adding the “UnrealEd” and “Kismet” dependencies, the files in the private folder are not yet linked.

I added a new private classe ( both .h and .cpp in private folder ) to the plugin.
Including the private header is informed that the file could not be found in compile time.

As it is my first time creating a plugin I do not know if it is my mistake or if I should submit a bug.
I’m attaching the plugin this time, the only changes are the files: ExampleBlueprintFunctionLibrary and ExamplePrivateObject.

Thank you!

Unreal Engine Bug Submission response:

1 Like