premake c ++ «Привет, мир» ошибка

Я пытаюсь заставить работать premake4 helloworld c ++
но получите ошибку при вызове make с выпуском config после создания make-файла с помощью premake. (Я использую Clang на OSX 10.9.4)
призвание make config=release производит:

ld: internal error: atom not found in symbolIndex(...

Если я добавлю флаг «Символы» к флагам выпуска, все будет работать нормально.
Но это, конечно, создает символы отладки.

premake4.lua:

solution "cpp_hello_world"configurations { "Debug", "Release"}

project "cpp_hello_world.out"kind "ConsoleApp"language "C++"files { "**.cpp" }

buildoptions { "-std=c++1y" }

configuration "Debug"defines { "DEBUG" }
flags { "Symbols" }

configuration "Release"defines { "NDEBUG" }
flags { "Optimize" }

main.cpp:

#include <iostream>

int main(){
std::cout << "hello world" << std::endl;
return 0;
}

Любая идея, почему это не работает, как в стандартном примере?
http://industriousone.com/post/typical-c-project-0

полный вывод с использованием make config=release verbose=1:

==== Building cpp_hello_world.out (release) ====
Creating obj/Release
mkdir -p obj/Release
main.cpp
c++ -MMD -MP -DNDEBUG   -O2 -std=c++1y  -o "obj/Release/main.o" -c "main.cpp"Linking cpp_hello_world.out
c++ -o ./cpp_hello_world.out obj/Release/main.o  -Wl,-x
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]: *** [cpp_hello_world.out] Error 1
make: *** [cpp_hello_world.out] Error 2

2

Решение

Я смог воспроизвести ошибку на моем Mac OS X 10.10.2, используя Premake4. Проблема в названии вашего проекта, которое не должно иметь .out расширение. Попробуйте вместо этого переименовать проект в «cpp_hello_world» в вашем файле premake4.lua.

то есть строка 4 должна гласить:

    project "cpp_hello_world"

Я могу проверить и устранить неполадки на виртуальной машине 10.9.4, если вы продолжите сталкиваться с проблемами после внесения этого изменения — дайте мне знать!

0

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


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