I am not being able to compile the following project.
The main.cpp
is not being able to obtain trim()
from the string_utils.hh
.
string_utils.hh
#include <string>
#include <cstring>
#include <vector>
#include <iostream>
#include <sstream>
#ifndef UTILS_STRING_UTILS_H
#define UTILS_STRING_UTILS_H
namespace utils
{
std::string& trim(std::string& str, const std::string& delim = " \n\t\r");
}
#endif
string_utils.cc
#include <cmath>
#include <string>
#include "string_utils.hh"
namespace utils
{
std::string& trim(std::string& str, const std::string& delim)
{
return str;
}
}
main.cpp
#include <iostream>
#include "string_utils.hh"
int main()
{
std::string source_string = " Hello World! ";
std::cout << source_string << std::endl;
std::string destination_2 = utils::trim(source_string, " ");
return 0;
}
CMakeList.txt
cmake_minimum_required (VERSION 3.8)
project ("string_utils__debugging__stripped__more")
add_executable (string_utils__debugging__stripped__more "main.cpp" )
Error
>------ Rebuild All started: Project: string_utils__debugging__stripped__more, Configuration: Mingw64-Debug ------
[1/1] Cleaning all built files...
Cleaning... 0 files.
[1/2] C:\PROGRA~1\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\g++.exe -g -MD -MT CMakeFiles/string_utils__debugging__stripped__more.dir/main.cpp.obj -MF CMakeFiles\string_utils__debugging__stripped__more.dir\main.cpp.obj.d -o CMakeFiles/string_utils__debugging__stripped__more.dir/main.cpp.obj -c ../../../main.cpp
[2/2] cmd.exe /C "cd . && C:\PROGRA~1\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\g++.exe -g CMakeFiles/string_utils__debugging__stripped__more.dir/main.cpp.obj -o string_utils__debugging__stripped__more.exe -Wl,--out-implib,libstring_utils__debugging__stripped__more.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
FAILED: string_utils__debugging__stripped__more.exe
cmd.exe /C "cd . && C:\PROGRA~1\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\g++.exe -g CMakeFiles/string_utils__debugging__stripped__more.dir/main.cpp.obj -o string_utils__debugging__stripped__more.exe -Wl,--out-implib,libstring_utils__debugging__stripped__more.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
CMakeFiles/string_utils__debugging__stripped__more.dir/main.cpp.obj: In function `main':
C:\Users\pc\source\repos\string_utils__debugging__stripped__more\out\build\Mingw64-Debug/../../../main.cpp:10: undefined reference to `utils::trim(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
C:\Users\pc\source\repos\string_utils__debugging__stripped__more\out\build\Mingw64-Debug\collect2.exe : error : ld returned 1 exit status
ninja: build stopped: subcommand failed.
Rebuild All failed.
There is no template involved here. So, what is the issue?