我在实现gtkmm应用程序的makefile时遇到了麻烦.我已经实现了一个简单的解决方案,但是,我收到以下错误:
g ++ -Wall -std = c ++ 11
pkg-config gtkmm-3.0 --cflags-c main.cppcc main.o
pkg-config gtkmm-3.0 --libs-o main/ usr/bin/ld:main.o:对符号'__gxx_personality_v0 @@ CXXABI_1.3'的未定义引用
/usr/lib/x86_64-linux-gnu/libstdc++.so.6:添加符号时出错:命令行中缺少DSO
collect2:错误:ld返回1退出状态
:目标'main'的配方失败
make:***[main]错误1
Makefile文件:
# Compiler
CXX = g++
CXXFLAGS = -Wall -std=c++11 `pkg-config gtkmm-3.0 --cflags`
# gtkmm library flags
LDLIBS = `pkg-config gtkmm-3.0 --libs`
PROGRAM = main
SRCS = $(wildcard *.cpp)
OBJS = $(SRCS:.cpp=.o)
DEPEND = .depend
.PHONY: clean
$(PROG): $(OBJS)
$(CXX) $^ -o $@ $(LDLIBS)
# Object file rules:
.cpp.o:
$(CXX) $(CXXFLAGS) …Run Code Online (Sandbox Code Playgroud) 我有一个由元组组成的类型同义词卡。我还有一个类型同义词Deck定义为 [Card](卡片列表)。
由于读取文件,我被 IO monad 困住了,具体来说,我有一个类型为 IO Deck 的对象。我将如何检索卡片列表的各个元素?由于 IO monad,类型似乎不再是列表,所以我不能使用 !! 操作员。
警告!前方的剧透!
您将获得以下信息,但您可能更愿意为自己做一些研究.
1900年1月1日是星期一.三十天有九月,四月,六月和十一月.所有其他人都有三十一人,仅拯救二月,其中二十八,风雨无阻.在闰年,二十九岁.
闰年可以被4整除,但除非可以被400整除,否则不是一个世纪.在二十世纪的第一个月(1901年1月1日至2000年12月31日),有多少个星期日下降?
起初,这似乎是一个简单的问题.然而,当我编写解决方案时,我遇到了一个奇怪的问题 - 实际上答案应该是171,但无论我做什么,我都会得到173.我一遍又一遍地查看我的代码,但仍然无法找到错误.
#include <iostream>
using namespace std;
int main () {
int count = 0, days_in_month, days_passed = 1;
for (int i = 1900; i <= 2000; i++) {
for (int j = 1; j <= 12; j++) {
if (j == 4 || j == 6 || j == 9 || j == 11) {
days_in_month = 30;
} else if (j == 2) {
if (i % 400 == 0 || (i % …Run Code Online (Sandbox Code Playgroud) 我试图实现一个面向对象的二叉树,但是,我得到一个重载构造函数调用的错误消息是不明确的.问题是我确实拥有必要的构造函数,但C++似乎并没有认识到它.
我的代码:http://pastebin.com/PM9PDYAN
错误消息:
56 36 In constructor 'Node::Node(const int&, Node*, Node*, const int&)':
56 36 [Error] call of overloaded 'Node(const int&, Node* const)' is ambiguous
17 3 [Note] Node::Node(const int&, Node*)
15 3 [Note] Node::Node(const int&, const int&, Node*) <near match>
15 3 [Note] no known conversion for argument 2 from 'Node* const' to 'const int&'
37 1 [Note] Node::Node(const int&, Node*, Node*, Node*)
Run Code Online (Sandbox Code Playgroud)