Связывание статической библиотеки с Premake5 не выполняется.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Связывание статической библиотеки с Premake5 не выполняется.

Сообщение Anonymous »

Я использую Premake5 в качестве системы сборки проекта C++, который в настоящее время состоит из статической библиотеки (ядро) и консольного приложения (тесты). Однако когда я пытаюсь скомпилировать тесты, включающие файлы из ядра, компилятор выдает следующую ошибку:

Код: Выделить всё

/mnt/HD/Linux/Jetbrains/CLion/bin/cmake/linux/x64/bin/cmake --build /home/renerp/Documentos/Projetos/C++/Chess/.premake/generated/cmake-build-debug --target Tests -j 3
[1/15] Building CXX object CMakeFiles/Tests.dir/home/renerp/Documentos/Projetos/C++/Chess/tests/unit/core/pieces/PawnTest.cpp.o
FAILED: CMakeFiles/Tests.dir/home/renerp/Documentos/Projetos/C++/Chess/tests/unit/core/pieces/PawnTest.cpp.o
/usr/bin/g++ -DDEBUG -I/home/renerp/Documentos/Projetos/C++/Chess/tests/vendor/gtest -I/home/renerp/Documentos/Projetos/C++/Chess/tests/vendor/gtest/include -std=c++17 -fdiagnostics-color=always -g -std=c++17 -MD -MT CMakeFiles/Tests.dir/home/renerp/Documentos/Projetos/C++/Chess/tests/unit/core/pieces/PawnTest.cpp.o -MF CMakeFiles/Tests.dir/home/renerp/Documentos/Projetos/C++/Chess/tests/unit/core/pieces/PawnTest.cpp.o.d -o CMakeFiles/Tests.dir/home/renerp/Documentos/Projetos/C++/Chess/tests/unit/core/pieces/PawnTest.cpp.o -c /home/renerp/Documentos/Projetos/C++/Chess/tests/unit/core/pieces/PawnTest.cpp
/home/renerp/Documentos/Projetos/C++/Chess/tests/unit/core/pieces/PawnTest.cpp:5:10: fatal error: Piece.hpp: Arquivo ou diretório inexistente
5 | #include
|          ^~~~~~~~~~~
compilation terminated.
[3/15] Building CXX object CMakeFiles/Tests.dir/home/renerp/Documentos/Projetos/C++/Chess/tests/unit/core/utils/coordinates/Coordinates.cpp.o
ninja: build stopped: subcommand failed.
Я использую модуль Jarod cmake, поэтому ошибка связана с CMake.
Использование gmak2 по умолчанию приводит к следующей ошибке:
Использование gmak2 по умолчанию приводит к следующей ошибке:
р>

Код: Выделить всё

==== Building Core (debug) ====
Creating ../build/Debug/obj/Core
...
==== Building Tests (debug) ====
Creating ../build/Debug/obj/Tests
Coordinates.cpp
MainTest.cpp
PawnTest.cpp
../../tests/unit/core/pieces/PawnTest.cpp:5:10: fatal error: Piece.hpp: Arquivo ou diretório inexistente
5 | #include
|          ^~~~~~~~~~~
compilation terminated.
make[1]: *** [Tests.make:167: ../build/Debug/obj/Tests/PawnTest.o] Erro 1
make: *** [Makefile:38: Tests] Erro 2

Текущее содержимое файла предварительной сборки следующее:

Код: Выделить всё

workspace "Chess"
configurations { "Debug", "Release" }

cppdialect "C++17"

location ".premake/generated/"
bindirs ".premake/build/%{cfg.buildcfg}/bin/%{prj.name}"
objdir ".premake/build/%{cfg.buildcfg}/obj/%{prj.name}"

project "Core"
kind "StaticLib"
language "C++"

files { "src/core/**.hpp", "src/core/**.cpp" }
includedirs { "src/core", "src/core/**" }

filter "configurations:Debug"
defines { "DEBUG" }
symbols "On"
filter "configurations:Release"
defines { "NDEBUG" }
optimize "On"
filter ""

project "Tests"
kind "ConsoleApp"
language "C++"

files {
"tests/unit/**.cpp",
"tests/MainTest.cpp",
"tests/vendor/gtest/**.h",
"tests/vendor/gtest/src/*.cc"
}
includedirs {
"tests/vendor/gtest/",
"tests/vendor/gtest/include/"
}
links { "Core" }

filter "configurations:Debug"
defines { "DEBUG" }
symbols "On"
Я ожидал, что эта конфигурация правильно настроит пути включения и свяжет библиотеку Core с приложением Tests. Что может быть причиной этой проблемы и как ее решить?

Подробнее здесь: https://stackoverflow.com/questions/786 ... h-premake5
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»