के साथ उत्पन्न समाधान मैं सीएमके और बूस्ट लाइब्रेरी का उपयोग करके जीसीसी (लिनक्स) से एमएसवीसी (विंडोज़) तक एक बड़ी परियोजना को बंद करने की कोशिश कर रहा हूं।एलएनके2019 जब एएसआई हेडर समेत, सेमेक
परियोजना संकलन और जीसीसी के लिए ठीक चलता है, लेकिन यह निम्न त्रुटि देता है MSVC पर:
Dyna.obj : error LNK2019: unresolved external symbol "void __cdecl boost::throw_exception(class std::exception const &)" ([email protected]@@[email protected]@@@Z) referenced in function "void __cdecl boost::asio::detail::do_throw_error(class boost::system::error_code const &,char const *)" ([email protected]@[email protected]@@[email protected]@[email protected]@Z)
मैं बढ़ावा asio का उपयोग कर एक सरल परियोजना चल की कोशिश की और यह काम किया है, जो teorethically शामिल नहीं समस्याओं का निर्माण को बढ़ावा देने के।
CMakeLists.txt इस प्रकार है: पहले से
.
.
.
IF(WIN32)
# Flags para garantir a compilação em windows
SET(CMAKE_CXX_COMPILER icpl)
SET(TPN_WIN32 "/D WIN32")
SET(TPN_WIN32_LIB ws2_32.lib odbc32.lib odbccp32.lib)
SET(CMAKE_EXE_LINKER_FLAGS /NODEFAULTLIB:LIBC;LIBCMT)
ENDIF(WIN32)
# Comando para se livrar de warning sobre o caminho da library pthread
IF(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
ENDIF(COMMAND cmake_policy)
# Configuracao do TPN REALTIME
# === inicio ===
IF (REALTIME_YES)
MESSAGE ("[TPN] REALTIME ENABLED")
set(Boost_ADDITIONAL_VERSIONS "1.45.0")
set(Boost_USE_MULTITHREAD ON)
set(Boost_USE_STATIC_LIBS ON)
FIND_PACKAGE(Boost "1.45.0" COMPONENTS system filesystem serialization program_options regex thread date_time REQUIRED)
FIND_PACKAGE(Threads REQUIRED)
set(HYDRO_CXX_FLAGS "-DREALTIME -DJOYSTICK")
set(HYDRO_CXX_LFLAGS ${Boost_LIBRARIES})
INCLUDE_DIRECTORIES(hydro)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
ENDIF (REALTIME_YES)
# === final ===
.
.
.
TARGET_LINK_LIBRARIES(Dyna
tpn
preadyn
${WHERE_PREA3D}
${WHERE_WAMIT_IO}
${WHERE_WAMIT_CONVERTER}
${WHERE_TECLINE}
${HYDRO_CXX_LFLAGS}
${TPN_WIN32_LIB}
)
धन्यवाद (ब्याज के कुछ हिस्सों विभाजित)
इससे समस्या हल हो गई। बहुत से धन्यवाद ... – Ishida
यदि आप एमएसवीएस आईडीई का भी उपयोग कर रहे हैं तो यह भी जरूरी है। परियोजना-> गुण-> सी/सी ++ -> कोड जनरेशन-> सी ++ अपवाद सक्षम करें: हां – EhevuTov