gpt4 book ai didi

c++ - 预制 C++ "hello world"错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:53:02 28 4
gpt4 key购买 nike

我正在尝试让 premake4 helloworld c++ 工作但是在使用 premake 创建 makefile 后调用带有 release config 的 make 时会出错。 (我在 osx 10.9.4 上使用 clang)调用 make config=release 产生:

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

如果我将“Symbols”标志添加到发布标志中,一切正常。但这当然会创建调试符号。

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" }

主要.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

最佳答案

我能够使用 Premake4 在我的 Mac OS X 10.10.2 上重现错误。问题出在您的项目名称上,它不应该有 .out 扩展名。尝试在 premake4.lua 文件中将项目重命名为“cpp_hello_world”。

即第 4 行应为:

    project "cpp_hello_world"

如果您在进行此更改后仍然遇到问题,我可以在 10.9.4 上的 VM 上进行测试和故障排除 - 让我知道!

关于c++ - 预制 C++ "hello world"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24979986/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com