私は大学の課題に取り組んでいます。自分のIDE(Clion)でプログラムを正常に実行して動作させることができます。しかし、私は次のエラーを取得、同じマシン上で手動で構築された実行可能ファイルを実行しようとすると:C++ MinGWリンカーエラー_ZNSt7__cxx1112basic_stringlcSt11char_traitslcESalcEE10_M_replaceEjjPKcj
長い文字列を:「_ZNSt7__cxx1112basic_stringlcSt11char_traitslcESalcEE10_M_replaceEjjPKcj」
私はGCCとMINGW32を使用して構築しています/ G ++バージョン5.3.0 on Windows 10.私がソースからコンパイルしたライブラリは、GLEW 2.0とGLFW 3.2.1です。私もstb_imageを使用しています。
私のコードはC++ 14標準用にビルドされています。私はこのエラーの原因を突き止めることができません。
マイCMakeLists.txt:
cmake_minimum_required(VERSION 3.6)
project(FlightSim)
#Set C++ standard to C++14
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
#Set project directory variables
set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src")
set(RESOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/resources")
set(INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/includes")
set(LIBRARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/lib")
#Include library headers
include_directories("${INCLUDE_DIR}")
#Add source files
file(GLOB_RECURSE SOURCE_FILES "${SOURCE_DIR}/*.cpp")
add_executable(FlightSim ${SOURCE_FILES})
#Add static definition for GLEW
add_definitions(-DGLEW_STATIC)
#Link libraries
target_link_libraries(
FlightSim
"${LIBRARY_DIR}/libglew32.a"
"${LIBRARY_DIR}/libglfw3.a"
# "${LIBRARY_DIR}/libSOIL.a"
opengl32.lib
)
これらのライブラリに静的にリンクしていますか?その場合、私は非常に注意する。この問題の一般的な原因は、一部のライブラリが、MinGWを使用しているため、使用しているものとは異なるVisual Studioのバージョンでコンパイルされていることです。これが事実であることを確認できますか?共有ライブラリにリンクすることで、この問題を解決しようとする場合があります。 –
@TheQuantumPhysicist私が知っている限り、ライブラリに静的にリンクしています。しかし、Visual StudioではなくMinGWコンパイラを使用してソースから自分のマシンでコンパイルされています。私は私のオリジナルの投稿で言及したように、このプロジェクトではVisual Studioを全く使用していません。 –