PROBLEM when using clion on windows

 

I follow the suggest below:

 

And I got problem during linking process.When i try to include a hpp contain other thrid-party library,then I got this:

 

[ 33%] Building CXX object CMakeFiles/multi4.dir/src/main.cpp.obj
[ 66%] Building CXX object CMakeFiles/multi4.dir/E_/CPPTOOL/MyTool/src/jsonStuff.cpp.obj
[100%] Linking CXX executable multi4.exe
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(eh_alloc.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(eh_exception.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(eh_personality.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(new_op.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\bin\ld: C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(tinfo.o):(.text$_ZNKSt9type_infoeqERKS_+0x0): multiple definition of `std::type_info::operator==(std::type_info const&) const'; CMakeFiles\multi4.dir/objects.a(main.cpp.obj):C:\msys64\mingw64\include\c++\9.2.0/typeinfo:121: first defined here
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(locale.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(locale_init.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(stdexcept.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(functexcept.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(bad_alloc.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(bad_cast.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(bad_typeid.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(eh_aux_runtime.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(guard.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(vterminate.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(cxx11-ios_failure.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(system_error.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(bad_array_new.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\libstdc++.a(ios_failure.o): duplicate section `.rdata$_ZTSSt9exception[_ZTSSt9exception]' has different size
C:\msys64\mingw64\bin\ld: CMakeFiles\multi4.dir/objects.a(main.cpp.obj): in function `mkdirs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
E:/CPPTOOL/MyTool/include/ioStuff.hpp:122: undefined reference to `replace(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
mingw32-make.exe[3]: *** [CMakeFiles\multi4.dir\build.make:102: multi4.exe] Error 1
mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:72: CMakeFiles/multi4.dir/all] Error 2
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:84: CMakeFiles/multi4.dir/rule] Error 2
mingw32-make.exe: *** [Makefile:117: multi4] Error 2

 

and here is my cmakelist,I just dont know which part is wrong:

cmake_minimum_required(VERSION 3.14)
project(multi4)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_COMPILER "C:/msys64/mingw64/bin/clang++")
set(CMAKE_C_COMPILER "C:/msys64/mingw64/bin/clang")
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
include_directories(include)
include_directories(E:/CPPTOOL/nolhmann)
include_directories(E:/CPPTOOL/MyTool/include)
include_directories(D:/ProgramData/Anaconda3/include)
include_directories(E:/CPPTOOL/nolhmann)
link_directories(bin)
link_directories(D:/ProgramData/Anaconda3/libs)
add_executable(multi4
E:/CLionProjects/multi4/src/main.cpp
E:/CPPTOOL/MyTool/src/jsonStuff.cpp
E:/CPPTOOL/nolhmann/json.hpp
E:/CPPTOOL/MyTool/include/jsonStuff.hpp
D:/ProgramData/Anaconda3/include/Python.h
)
TARGET_LINK_LIBRARIES(multi4
python36.lib
imagehlp.lib
)
TARGET_LINK_LIBRARIES(multi4
)

problem happend when i attemp to inlcude jsonStuff.hpp into main file, and jsonStuff.hpp is rely on nolhmann-json.hpp

 
0
3 comments
Avatar
Permanently deleted user

by the way when I delete 

set(CMAKE_CXX_COMPILER "C:/msys64/mingw64/bin/clang++")
set(CMAKE_C_COMPILER "C:/msys64/mingw64/bin/clang")

in cmakelist and use gcc/g++ as compiler,everything works fine

"

0

Currently experiencing the exact same issue trying to port a project to Clang on windows. Both MSVC and Mingw-w64 compile the project flawlessly.

0

Here's my Toolchain config for added context.

 

0

Please sign in to leave a comment.