Ubuntu. SFML. Ошибка free(): invalid pointer при запуске программы
При запуске программы на Ubuntu через терминал вываливается ошибка:
free(): invalid pointer
Аварийный останов (стек памяти сброшен на диск)
Код:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "Lesson 2. kychka-pc.ru");
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Red);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
Сборка производилась CMake:
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
set(PROJECT_NAME Slot)
project(${PROJECT_NAME})
set(BUILD_SHARED_LIBS OFF)
set(CMAKE_CXX_STANDART 17)
file(GLOB sources "${PROJECT_SOURCE_DIR/src/*.cpp}")
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
add_executable(${PROJECT_NAME} ${sources})
find_package(SFML REQUIRED)
if(SFML_FOUND)
target_include_directories(${PROJECT_NAME} PRIVATE ${SFML_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} PRIVATE sfml-audio sfml-graphics sfml-system sfml-window sfml-network)
endif()
Исходники sfml подгружались пакетным менеджером Conan:
from conans import Conanfile, CMake
class Libraries(ConanFile):
name = "Libraries"
settings = "os", "compiler", "build_type","arch"
generators = "cmake", "cmake_find_package"
requires = [("sfml/2.5.1")]
def config_options(self):
self.settings.compiler.libcxx = libstdc++11
Компилятор:
CXX compiler GNU 9.4.0
Единственное решение, которое я нашел это сообщить Conan о self.settings.compiler.libcxx = libstdc++11 , но мне это не помогло. Conan просто игнорирует эту строчку и в conaninfo.txt все равно compiler.libcxx=libsrdc++
Прошу помощи. Спасибо.
Ответы (1 шт):
Всем спасибо. Вообщем решение такое:
Windows:
1)зайти в папку C:\Users\ComputerName\.conan\profiles
2)Открыть профиль default
3)Изменить в нем строчку
settings.compiler.libcxx="libstdc++"
на settings.compiler.libcxx="libstdc++11"
4)Сохранить файл
5)Пересобрать заново проект своей проект
Linux:
1)В терминале вбить строчку
conan profile update settings.compiler.libcxx="libstdc++11" default
(default - имя нашего профиля по умолчанию)
2)Команда, чтобы проверить все ли изменились корректно:
conan profile show default
3)Пересобрать проект