g++ czech2017.cpp dist/jsoncpp.cpp dist/sqlite3.o -o czech2017
-LC:\msys64\mingw64\lib -lboost_filesystem -lboost_system
-lboost_locale -lboost_thread
< /code>
Но я получаю следующие ошибки: < /p>
C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text+0x965): undefined reference to `boost::locale::generator::generator()'
C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text+0x9b4): undefined reference to `boost::locale::generator::generate(std::__cxx11::basic_string const&) const'
C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text+0xa15): undefined reference to `boost::locale::generator::~generator()'
C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text+0xa3a): undefined reference to `boost::filesystem::path::imbue(std::locale const&)'
C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text+0xb87): undefined reference to `boost::locale::generator::~generator()'
C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text$_ZN5boost10filesystem11path_traits7convertEPKcS3_RNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE[_ZN5boost10filesystem11path_traits7convertEPKcS3_RNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE]+0x15): undefined reference to `boost::filesystem::path::codecvt()'
C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text$_ZN5boost10filesystem11path_traits7convertEPKcS3_RNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE[_ZN5boost10filesystem11path_traits7convertEPKcS3_RNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE]+0x32): undefined reference to `boost::filesystem::path_traits::convert(char const*, char const*, std::__cxx11::basic_string&, std::codecvt const&)'
C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text$_ZN5boost10filesystem11path_traits7convertEPKwS3_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN5boost10filesystem11path_traits7convertEPKwS3_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x15): undefined reference to `boost::filesystem::path::codecvt()'
C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text$_ZN5boost10filesystem11path_traits7convertEPKwS3_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN5boost10filesystem11path_traits7convertEPKwS3_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x32): undefined reference to `boost::filesystem::path_traits::convert(wchar_t const*, wchar_t const*, std::__cxx11::basic_string&, std::codecvt const&)'
< /code>
Я знаю, что не связываю что -то правильно. Я предполагаю, что у меня нет библиотек, связанных в правильном порядке, но я не знаю надлежащего порядка. Кто -нибудь может помочь? Я создал следующий Cmake: < /p>
cmake_minimum_required(VERSION 3.13)
project(election_results_calculators)
set(CMAKE_CXX_STANDARD 17)
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
ADD_DEFINITIONS(-DBOOST_ALL_NO_LIB)
find_package(Boost REQUIRED COMPONENTS filesystem system locale thread)
set (ROOT_DIR ..)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(czech2017 ${ROOT_DIR}/tests/czech2017.cpp ${ROOT_DIR}/tests/dist/sqlite3.o ${ROOT_DIR}/tests/dist/jsoncpp.cpp)
target_link_libraries(czech2017 ${Boost_LIBRARIES})
< /code>
и он компилируется. Я получаю ту же ошибку, что и выше, но теперь с немного разными словами: __IMP__ZN5BOOST6LOCALE9GENTATORC1EV
. Если я составляю программу с грубым аппроксимацией команды компиляции Cmake: g ++. Exe -dboost_all_no_lib -dboost_chrono_dyn_link -dboost_filesystem_dyn_link -dboost_locale_dyn_link -dboost_system_dyn_link -dboost_locale_dyn_link -dboost_system_dyn_link -dboost_locale_dyn_link -dboost_dyn_link_link_link_link_link_link_link_link_link_link_link_link_link_link_link_linc -Dndebug -Std = gnu ++ 17 -o czech2017.exe -c czech2017.cpp он также правильно компилируется, но я получаю сообщение о том, что EXE несовместимо с 64 -битными окнами. Зачем это компилировать, если бы не было?
Я пытаюсь собрать проект C ++ с библиотеками локали и файловой системы. < /p> Вот команда: < /p> [code]g++ czech2017.cpp dist/jsoncpp.cpp dist/sqlite3.o -o czech2017 -LC:\msys64\mingw64\lib -lboost_filesystem -lboost_system -lboost_locale -lboost_thread < /code> Но я получаю следующие ошибки: < /p> C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text+0x965): undefined reference to `boost::locale::generator::generator()' C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text+0x9b4): undefined reference to `boost::locale::generator::generate(std::__cxx11::basic_string const&) const' C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text+0xa15): undefined reference to `boost::locale::generator::~generator()' C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text+0xa3a): undefined reference to `boost::filesystem::path::imbue(std::locale const&)' C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text+0xb87): undefined reference to `boost::locale::generator::~generator()' C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text$_ZN5boost10filesystem11path_traits7convertEPKcS3_RNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE[_ZN5boost10filesystem11path_traits7convertEPKcS3_RNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE]+0x15): undefined reference to `boost::filesystem::path::codecvt()' C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text$_ZN5boost10filesystem11path_traits7convertEPKcS3_RNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE[_ZN5boost10filesystem11path_traits7convertEPKcS3_RNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE]+0x32): undefined reference to `boost::filesystem::path_traits::convert(char const*, char const*, std::__cxx11::basic_string&, std::codecvt const&)' C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text$_ZN5boost10filesystem11path_traits7convertEPKwS3_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN5boost10filesystem11path_traits7convertEPKwS3_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x15): undefined reference to `boost::filesystem::path::codecvt()' C:\Users\usr\AppData\Local\Temp\ccN0DX4g.o:czech2017.cpp:(.text$_ZN5boost10filesystem11path_traits7convertEPKwS3_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN5boost10filesystem11path_traits7convertEPKwS3_RNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x32): undefined reference to `boost::filesystem::path_traits::convert(wchar_t const*, wchar_t const*, std::__cxx11::basic_string&, std::codecvt const&)' < /code> Я знаю, что не связываю что -то правильно. Я предполагаю, что у меня нет библиотек, связанных в правильном порядке, но я не знаю надлежащего порядка. Кто -нибудь может помочь? Я создал следующий Cmake: < /p> cmake_minimum_required(VERSION 3.13) project(election_results_calculators) set(CMAKE_CXX_STANDARD 17)
set (ROOT_DIR ..) include_directories(${Boost_INCLUDE_DIRS}) add_executable(czech2017 ${ROOT_DIR}/tests/czech2017.cpp ${ROOT_DIR}/tests/dist/sqlite3.o ${ROOT_DIR}/tests/dist/jsoncpp.cpp) target_link_libraries(czech2017 ${Boost_LIBRARIES}) < /code> и он компилируется. Я получаю ту же ошибку, что и выше, но теперь с немного разными словами: __IMP__ZN5BOOST6LOCALE9GENTATORC1EV [/code]. Если я составляю программу с грубым аппроксимацией команды компиляции Cmake: g ++. Exe -dboost_all_no_lib -dboost_chrono_dyn_link -dboost_filesystem_dyn_link -dboost_locale_dyn_link -dboost_system_dyn_link -dboost_locale_dyn_link -dboost_system_dyn_link -dboost_locale_dyn_link -dboost_dyn_link_link_link_link_link_link_link_link_link_link_link_link_link_link_link_linc -Dndebug -Std = gnu ++ 17 -o czech2017.exe -c czech2017.cpp он также правильно компилируется, но я получаю сообщение о том, что EXE несовместимо с 64 -битными окнами. Зачем это компилировать, если бы не было?