Не могу связать другие проекты в моем решении с premake

Я пытаюсь начать работу с premake, но не могу правильно связать свой тестовый проект с ним. Если я свяжу это руководство, оно будет работать нормально.

Я использую premake 4.3 (также тестировал его с premake 4.4) на OS X 10.9 с clang 3.4.

После того, как я создаю make-файл через «premake4 gmake» и пытаюсь скомпилировать его, я получаю сообщение об ошибке:

Linking subproject
ld: internal error: atom not found in symbolIndex(__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc) for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [libsubproject.dylib] Error 1
make: *** [subproject] Error 2

Моя довольно простая настройка проекта:

project/
src/
test.cpp
subproject/
include/
Library.hpp
source/
Library.cpp
premake4.lua

premake4.lua

solution "testa"configurations {"debug"}
language "C++"
includedirs {"subproject/include"}

project "subproject"kind "SharedLib"files {"subproject/source/*.cpp"}

project "main"kind "ConsoleApp"files {"src/*.cpp"}

links {"subproject"}

SRC / test.cpp

#include <iostream>
#include <Library.hpp>

using namespace std;

int main() {
cout << "Hello, World!" << endl;

Library lib(13, 3);

lib.do_stuff(7);

return 0;
}

субпроект / включать / Library.hpp

#ifndef __LIBRARY_HPP__
#define __LIBRARY_HPP__

#include <iostream>

using namespace std;

class Library {
public:
Library(int, int);
void do_stuff(int) const;

private:
int x;
int y;

};

#endif

подпроект / источник / Library.cpp

#include <Library.hpp>

Library::Library(int x, int y) {
this->x = x;
this->y = y;
}

void Library::do_stuff(int z) const {
cout << "X: " << x << "Y: " << y << "Z: " << z << endl;
}

Спасибо за ваше время.

2

Решение

Это известная ошибка перед созданием. Было сообщено и исправлено, но исправленная версия программы еще не выпущена. Смотрите обсуждение Вот.

Эта ошибка вызвана -Wl,-x флаги компоновщика, которые premake добавит по умолчанию к project.make Makefile. На данный момент существует два возможных решения: загрузить обновленный исходный код premake с исправлением, скомпилировать его и установить новую версию или вручную изменить значение LDFLAGS в сгенерированном project.make после каждого запуска premake.

Я также попробовал предложение, которое они дают в ссылке выше настройки premake.tools.gcc.ldflags.flags._Symbols в nil, но это не повлияло на мою систему.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]