Linker Command Failed When Trying To Make Combo Box (Solved)

I am trying to make combobox but I get this error.
linker command failed with exit code 1 (use -v to see invocation)
I honestly have no idea why.

Here are my modules being used in Plugin

"Core",
"CoreUObject",
"Engine",
"UnrealEd",
"DeveloperSettings",
"AssetTools",
"Slate",
"SlateCore",
"UMG",
"GraphEditor",
"PropertyEditor",
"EditorStyle",
"Kismet",
"KismetWidgets",
"ApplicationCore",
"ToolMenus",
"StatusBar",

Here is header file code

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

#pragma once

#include "FluidNarratorEditor.h"
#include "FluidNarratorRuntime.h"
#include "CoreMinimal.h"
#include "Components/Widget.h"
#include "Widgets/Layout/SScrollBox.h"
#include "Widgets/Input/SComboBox.h"
#include "Widgets/Views/SListView.h"
#include "Widgets/Text/STextBlock.h"
#include "Widgets/Input/SButton.h"
#include "Widgets/SCanvas.h"

/**
 * 
 */

class UFluidNarratorDeveloperSettings;
class FluidNarratorScreenplayEditor;

class FLUIDNARRATOREDITOR_API SFluidNarratorLocalizationDashboardSlateWidget : public SCompoundWidget
{

//Construct	
public:
	
	SLATE_BEGIN_ARGS(SFluidNarratorLocalizationDashboardSlateWidget) { }
	SLATE_END_ARGS()
	
	void Construct(const FArguments& InArgs);

//Main
public:

	TSharedRef<SWidget> HandelNamespaceComboBoxMakeWidget(TSharedPtr<FString> InOption) const;
	void HandelNamespaceComboBoxSelectionChanged(TSharedPtr<FString> NewValue, ESelectInfo::Type);
	FText HandelNamespaceComboBoxCurrentItemLabel() const;
	
	TArray<TSharedPtr<FString>> NamespaceComboBoxOptions;
	TSharedPtr<FString> NamespaceComboBoxOptionSelected;
};

Here is CPP

#include "FluidNarratorLocalizationDashboardSlateWidget.h"
#include "SlateOptMacros.h"

/*=============================================================================
Fluid Narrator Localization Dashboard Widget : Construct
=============================================================================*/

BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION

void SFluidNarratorLocalizationDashboardSlateWidget::Construct(const FArguments& InArgs)
{
	UFluidNarratorDeveloperSettings* MarshallerSyntaxDeveloperSettings = GetMutableDefault<UFluidNarratorDeveloperSettings>();
	
	//Set Padding
	ChildSlot.SetPadding(FMargin(10,10));

	//Vertical Box
	auto VerticalBox = SNew(SVerticalBox);
	ChildSlot.AttachWidget(VerticalBox);
	
	NamespaceComboBoxOptions.Add(MakeShareable(new FString("Option1")));
	NamespaceComboBoxOptions.Add(MakeShareable(new FString("Option2")));
	NamespaceComboBoxOptions.Add(MakeShareable(new FString("LastOption")));
	NamespaceComboBoxOptionSelected = NamespaceComboBoxOptions[0];
	
	auto NamespaceComboBox = SNew(SComboBox<TSharedPtr<FString>>)
		.OptionsSource(&NamespaceComboBoxOptions)
		.OnSelectionChanged(this, &SFluidNarratorLocalizationDashboardSlateWidget::HandelNamespaceComboBoxSelectionChanged)
		.OnGenerateWidget(this, &SFluidNarratorLocalizationDashboardSlateWidget::HandelNamespaceComboBoxMakeWidget)
		.InitiallySelectedItem(NamespaceComboBoxOptionSelected)
		[
			SNew(STextBlock)
			.Text(this, &SFluidNarratorLocalizationDashboardSlateWidget::HandelNamespaceComboBoxCurrentItemLabel)
		];
}

END_SLATE_FUNCTION_BUILD_OPTIMIZATION

/*=============================================================================
Fluid Narrator Localization Dashboard Widget : Main
=============================================================================*/

TSharedRef<SWidget> SFluidNarratorLocalizationDashboardSlateWidget::HandelNamespaceComboBoxMakeWidget(TSharedPtr<FString> InOption) const
{
	return SNew(STextBlock).Text(FText::FromString(*InOption));
}

void SFluidNarratorLocalizationDashboardSlateWidget::HandelNamespaceComboBoxSelectionChanged(TSharedPtr<FString> NewValue, ESelectInfo::Type)
{
	NamespaceComboBoxOptionSelected = NewValue;
}

FText SFluidNarratorLocalizationDashboardSlateWidget::HandelNamespaceComboBoxCurrentItemLabel() const
{
	if (NamespaceComboBoxOptionSelected.IsValid())
	{
		return FText::FromString(*NamespaceComboBoxOptionSelected);
	}

	return FText::FromString("NULL");
}
1 Like

Could you post the entire log?


This is all it says. How do I get to log?

I have narrowed it down to this line

auto NamespaceComboBox = SNew(SComboBox<TSharedPtr<FString>>)

Here I believe this is it.

Log started at 03/11/2022 15:36:02 (2022-03-11T21:36:02Z)
No config file at /Users/gennady/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
Configuration will be read from:
  /Users/gennady/.config/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
Note: Android toolchain NDK r21b recommended
IOS using Manual SDK 12.5
Mac using Manual SDK 12.5
Command line: "/Users/Shared/Epic Games/UE_5.0/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll" FluidPluginsProjectEditor Mac Development "/Users/gennady/Documents/Unreal Projects/FluidPluginsProject/FluidPluginsProject.uproject"
Log file: /Users/gennady/Library/Application Support/Epic/UnrealBuildTool/Log.txt
Deleting old log file: /Users/gennady/Library/Application Support/Epic/UnrealBuildTool/Log-backup-2022.03.11-20.43.41.txt

Module.FluidNarratorEditor.cpp: Dependency /Users/gennady/Documents/Unreal Projects/FluidPluginsProject/Plugins/FluidPluginsMaster/Source/FluidNarratorEditor/Private/FluidNarratorLocalizationDashboardSlateWidget.cpp is newer than the last execution of the action:03/11/2022 15:36:01 vs 03/11/2022 15:35:46
UnrealEditor-FluidNarratorEditor.dylib: Prerequisite Module.FluidNarratorEditor.cpp is produced by outdated action.
FluidPluginsProjectEditor.target: Prerequisite UnrealEditor-FluidNarratorEditor.dylib is produced by outdated action.
Checking for live coding mutex: Global\LiveCoding_+Users+Shared+Epic Games+UE_5.0+Engine+Binaries+Mac+UnrealEditor.app+Contents+MacOS+UnrealEditor
Deleting outdated item: /Users/gennady/Documents/Unreal Projects/FluidPluginsProject/Plugins/FluidPluginsMaster/Intermediate/Build/Mac/x86_64/UnrealEditor/Development/FluidNarratorEditor/Module.FluidNarratorEditor.cpp.o
Deleting outdated item: /Users/gennady/Documents/Unreal Projects/FluidPluginsProject/Plugins/FluidPluginsMaster/Intermediate/Build/Mac/x86_64/UnrealEditor/Development/FluidNarratorEditor/Module.FluidNarratorEditor.cpp.d
Deleting outdated item: /Users/gennady/Documents/Unreal Projects/FluidPluginsProject/Plugins/FluidPluginsMaster/Binaries/Mac/UnrealEditor-FluidNarratorEditor.dylib
Building FluidPluginsProjectEditor...
[Adaptive Build] Excluded from RD unity file: SimpleSocket.cpp, PassiveSocket.cpp, ActiveSocket.cpp, cfg.cpp, stdout_sinks.cpp, fmt.cpp, async.cpp, file_sinks.cpp, color_sinks.cpp, spdlog.cpp, countdownlatch.cpp, thirdparty.cpp, DateTime.cpp, SignalCookie.cpp, LifetimeDefinition.cpp, Lifetime.cpp, SequentialLifetimes.cpp, LifetimeImpl.cpp, RName.cpp, PkgInputStream.cpp, SocketWire.cpp, ByteBufferAsyncProcessor.cpp, WireUtil.cpp, PumpScheduler.cpp, thread_util.cpp, hashing.cpp, RdAny.cpp, SerializationCtx.cpp, Polymorphic.cpp, DefaultAbstractDeclaration.cpp, ISerializable.cpp, Serializers.cpp, RdExtBase.cpp, ExtWire.cpp, IScheduler.cpp, SingleThreadSchedulerBase.cpp, SingleThreadScheduler.cpp, SimpleScheduler.cpp, SynchronousScheduler.cpp, MessageBroker.cpp, Buffer.cpp, Identities.cpp, RdId.cpp, Protocol.cpp, InternScheduler.cpp, InternRoot.cpp, IProtocol.cpp, IRdWireable.cpp, RdBindableBase.cpp, RdReactiveBase.cpp, WireBase.cpp, IUnknownInstance.cpp, ISerializersOwner.cpp, RdTextBuffer.cpp, RD.cpp
[Adaptive Build] Excluded from RiderGameControlExtension unity file: RiderGameControlExtension.cpp
[Adaptive Build] Excluded from RiderShaderInfoDump unity file: RiderShaderInfoDump.cpp
[Adaptive Build] Excluded from FluidPluginsProject unity file: FluidPluginsProject.cpp, FluidPluginsProjectGameModeBase.cpp
Determining max actions to execute in parallel (8 physical cores, 8 logical cores)
  Executing up to 8 processes, one per physical core
  Requested 1.5 GB free memory per action, 4.31 GB available: limiting max parallel actions to 2
Building 3 actions with 2 processes...
[1/3] Compile Module.FluidNarratorEditor.cpp
[2/3] Link UnrealEditor-FluidNarratorEditor.dylib
Undefined symbols for architecture x86_64:
  "EKeys::Home", referenced from:
      SListView<TSharedPtr<FString, (ESPMode)1> >::OnKeyDown(FGeometry const&, FKeyEvent const&) in Module.FluidNarratorEditor.cpp.o
  "EKeys::End", referenced from:
      SListView<TSharedPtr<FString, (ESPMode)1> >::OnKeyDown(FGeometry const&, FKeyEvent const&) in Module.FluidNarratorEditor.cpp.o
  "EKeys::PageUp", referenced from:
      SListView<TSharedPtr<FString, (ESPMode)1> >::OnKeyDown(FGeometry const&, FKeyEvent const&) in Module.FluidNarratorEditor.cpp.o
  "EKeys::PageDown", referenced from:
      SListView<TSharedPtr<FString, (ESPMode)1> >::OnKeyDown(FGeometry const&, FKeyEvent const&) in Module.FluidNarratorEditor.cpp.o
  "EKeys::RightMouseButton", referenced from:
      STableRow<TSharedPtr<FString, (ESPMode)1> >::OnMouseButtonUp(FGeometry const&, FPointerEvent const&) in Module.FluidNarratorEditor.cpp.o
      SListView<TSharedPtr<FString, (ESPMode)1> >::OnMouseButtonUp(FGeometry const&, FPointerEvent const&) in Module.FluidNarratorEditor.cpp.o
  "EKeys::LeftMouseButton", referenced from:
      STableRow<TSharedPtr<FString, (ESPMode)1> >::OnMouseButtonDoubleClick(FGeometry const&, FPointerEvent const&) in Module.FluidNarratorEditor.cpp.o
      SComboRow<TSharedPtr<FString, (ESPMode)1> >::OnMouseButtonDown(FGeometry const&, FPointerEvent const&) in Module.FluidNarratorEditor.cpp.o
      STableRow<TSharedPtr<FString, (ESPMode)1> >::OnMouseButtonUp(FGeometry const&, FPointerEvent const&) in Module.FluidNarratorEditor.cpp.o
      STableRow<TSharedPtr<FString, (ESPMode)1> >::OnTouchStarted(FGeometry const&, FPointerEvent const&) in Module.FluidNarratorEditor.cpp.o
      STableRow<TSharedPtr<FString, (ESPMode)1> >::OnMouseButtonDown(FGeometry const&, FPointerEvent const&) in Module.FluidNarratorEditor.cpp.o
      SListView<TSharedPtr<FString, (ESPMode)1> >::OnMouseButtonDown(FGeometry const&, FPointerEvent const&) in Module.FluidNarratorEditor.cpp.o
  "EKeys::SpaceBar", referenced from:
      SListView<TSharedPtr<FString, (ESPMode)1> >::OnKeyDown(FGeometry const&, FKeyEvent const&) in Module.FluidNarratorEditor.cpp.o
  "EKeys::A", referenced from:
      SListView<TSharedPtr<FString, (ESPMode)1> >::OnKeyDown(FGeometry const&, FKeyEvent const&) in Module.FluidNarratorEditor.cpp.o
  "EKeys::BackSpace", referenced from:
      SComboBox<TSharedPtr<FString, (ESPMode)1> >::OnKeyDown(FGeometry const&, FKeyEvent const&) in Module.FluidNarratorEditor.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
CompilationResultException: Error: OtherCompilationError
   at UnrealBuildTool.ActionGraph.ExecuteActions(BuildConfiguration BuildConfiguration, List`1 ActionsToExecute) in /Users/build/Build/++UE5/Sync/Engine/Source/Programs/UnrealBuildTool/System/ActionGraph.cs:line 375
   at UnrealBuildTool.BuildMode.Build(TargetMakefile[] Makefiles, List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, BuildOptions Options, FileReference WriteOutdatedActionsFile) in /Users/build/Build/++UE5/Sync/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 611
   at UnrealBuildTool.BuildMode.Build(List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, ISourceFileWorkingSet WorkingSet, BuildOptions Options, FileReference WriteOutdatedActionsFile, Boolean bSkipPreBuildTargets) in /Users/build/Build/++UE5/Sync/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 282
   at UnrealBuildTool.BuildMode.Execute(CommandLineArguments Arguments) in /Users/build/Build/++UE5/Sync/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 237
   at UnrealBuildTool.UnrealBuildTool.Main(String[] ArgumentsArray) in /Users/build/Build/++UE5/Sync/Engine/Source/Programs/UnrealBuildTool/UnrealBuildTool.cs:line 593
WriteFileIfChanged() wrote 0 changed files of 0 requested writes.
Timeline:

[ 0.000]
[ 0.000](+24.449) <unknown>
[24.449]

Thanks. I did not know about log file. I fixed issue. I needed to add
“InputCore” module

1 Like

Great! Don’t forget to mark your answer as the answer!

1 Like