【发布时间】:2011-02-06 06:38:44
【问题描述】:
我正在尝试运行简单的程序,但得到以下编译器错误: $./lab2 /directory here/lab2.exe:加载共享库时出错:msys-1.0.dll:无法打开共享对象文件:没有这样的文件或目录
这是我的 makefile 和代码:
# CS240 Lab2 Makefile全部:lab2
lab2: main.o tenstrings.o g++ main.o tenstrings.o -o lab2
main.o: main.cpp g++ -Wall -c main.cpp -o main.o
tenstrings.o:tenstrings.cpp g++ -Wall -c tenstrings.cpp -o tenstrings.o
tenstrings.h----------------------------------- -------------------------*/
#ifndef TENSTRNGS
#define TENSTRNGS
class TenStrings
{
public:
// Default Constructor
TenStrings();
TenStrings str[10];
};
#endif
tenstrings.cpp
--------------------------*/
#include "TenStrings.h"
using namespace std;
//Default Constructor
TenStrings::TenStrings()
{
private:
str[0] = "String 1";
str[1] = "String 2";
str[2] = "String 3";
str[3] = "String 4";
str[4] = "String 5";
str[5] = "String 6";
str[6] = "String 7";
str[7] = "String 8";
str[8] = "String 9";
str[9] = "String 10";
std::cout << str[2] << std::endl;
}
;
main.cpp
--------------------------*/
#include "TenStrings.h"
#include <iostream>
int main()
{
TenStrings varTen;
return 0;
}
我正在尝试做这个实验的 B 部分:http://cs.binghamton.edu/~sgreene/cs240-2010f/labs/lab2.html 因此,如果您不仅可以就运行中的 exe 错误给我建议,还可以告诉我我是否也正确地理解了 B 部分。谢谢。
【问题讨论】:
-
顺便说一句。你如何格式化所有代码都在堆栈溢出标准中,所以它清晰易读?当我使用代码标签粘贴我的代码时,它仍然使代码不同的字体大小并且难以阅读。
-
@user593301:第 1 步:粘贴代码。第 2 步:选择所有代码。第 3 步:单击编辑器中的“代码”图标(它看起来像一对大括号)。或者,只需在您喜欢的文本编辑器中将您的代码 sn-p 缩进四个空格。
-
我很惊讶这个编译,老实说 - TenStrings 的定义似乎是递归的,我认为这是不允许的。
-
你的意思是它的递归?它只是一个空类型吗?
-
@user593301:不,它不是空类型。编译器需要为 TenStrings 结构保留空间。由于 TenStrings 类包含一个 TenStrings 类实例,因此每个 TenStrings 类需要为另外十个 TenStrings 对象分配存储空间。这是递归的并且会爆炸(在visual studio x86上,它报告对象大于2G并停止编译)。
标签: c++ windows-7 makefile compiler-errors