gpt4 book ai didi

c++ - 一个简短的 c++ 文件和 makefile : I can make in the shell, 但在 Eclipse 中构建它时出现很多错误

转载 作者:搜寻专家 更新时间:2023-10-31 01:13:36 25 4
gpt4 key购买 nike

我正在使用 makefile 编译一个非常短的 c++ 文件。c++ 文件使用名为 ClanLib 的外部库,但这不是重点,因为我可以使用“make”命令在 shell 中编译它,所以 c++ 文件和 makefile 都可以。

#include <ClanLib/core.h>
#include <ClanLib/application.h>

class ConsoleProgram {
public:
static int main(const std::vector<CL_String> &args);
};
CL_ClanApplication app(&ConsoleProgram::main);
int ConsoleProgram::main(const std::vector<CL_String> &args) {
CL_SetupCore setup_core;
CL_ConsoleWindow console_window("Console");
CL_Console::write_line("Hello World!");
CL_Console::wait_for_key();
return 0;
}




BIN = main
OBJF = main.o
LIBS = clanCore clanDisplay clanGL clanGL1 clanApp clanSWRender
VERSION = 2.3

PACKAGES = $(patsubst %, %-$(VERSION), $(LIBS))
INCLUDE += -I/usr/include/ClanLib-2.3/
CXXFLAGS += $(INCLUDE) `pkg-config --cflags $(PACKAGES)` -pthread

all: $(BIN)

$(BIN): $(OBJF)
$(CXX) $(CXXFLAGS) $(OBJF) -o $(BIN) `pkg-config --libs $(PACKAGES)`

clean:
find . -name '*.o' -type f -print -exec rm -rf {} \;
rm -f $(BIN)

%.o : %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@

%.o : %.hpp
$(CXX) $(CXXFLAGS) -c $< -o $@

但是我在 eclipse 中编译它时遇到了很多错误,我从早上开始就一直在谷歌搜索,但没有任何线索。

/usr/include/ClanLib-2.3/ClanLib/Core/Crypto/aes128_decrypt.h:116:2: error: ‘shared_ptr’ in namespace ‘std’ does not name a type
In file included from /usr/include/ClanLib-2.3/ClanLib/core.h:217:0,
from main.cpp:1:
/usr/include/ClanLib-2.3/ClanLib/Core/Crypto/aes192_encrypt.h:114:2: error: ‘shared_ptr’ in namespace ‘std’ does not name a type
In file included from /usr/include/ClanLib-2.3/ClanLib/core.h:218:0,
from main.cpp:1:
/usr/include/ClanLib-2.3/ClanLib/Core/Crypto/aes192_decrypt.h:116:2: error: ‘shared_ptr’ in namespace ‘std’ does not name a type
In file included from /usr/include/ClanLib-2.3/ClanLib/core.h:219:0,
from main.cpp:1:
/usr/include/ClanLib-2.3/ClanLib/Core/Crypto/aes256_encrypt.h:114:2: error: ‘shared_ptr’ in namespace ‘std’ does not name a type
In file included from /usr/include/ClanLib-2.3/ClanLib/core.h:220:0,
from main.cpp:1:
/usr/include/ClanLib-2.3/ClanLib/Core/Crypto/aes256_decrypt.h:116:2: error: ‘shared_ptr’ in namespace ‘std’ does not name a type
make: *** [main.o] Error 1

任何线索或建议将不胜感激。

我使用的是 Fedora 17 x86_64,eclipse indigo。

最佳答案

您需要将 std=c++0x 添加到 g++ 编译器标志以获取 std::shared_ptr

关于c++ - 一个简短的 c++ 文件和 makefile : I can make in the shell, 但在 Eclipse 中构建它时出现很多错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12329226/

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