我需要动态链接我创建的库.我不确定问题是什么.这一切编译正确,但我总是赶上handle
为NULL
指针:
void *handle;
char *error;
handle = dlopen ("./hw11-lib-michaelSchilling.so", RTLD_LAZY);
//same error comes up with full path as well as './hw11...'
if(!handle){
error = dlerror();
printf("%s\n", error);
printf("Error loading library.\n");
exit(1);
}
Run Code Online (Sandbox Code Playgroud)
我无法通过这个错误,我不确定什么可能是错的.我很确定我已经正确编译了所有内容.以下是我使用的编译步骤:
gcc -rdynamic -c hw11-lib-michaelSchilling.c -o hw11-lib-michaelSchilling.so
gcc hw11-michaelSchilling-4.c -ldl -o hw11-michaelSchilling-4
Run Code Online (Sandbox Code Playgroud)
我收到的错误是读取的
只能加载ET_DYN和ET_EXEC.
好的,所以我不确定这里发生了什么.我有一个简单的函数,int foo(char *filename)
它接受filename
并计算文件中的单词.
int foo(char *filename){
FILE *inFile;
int wordCount = 0;
printf("foo\n"); // test printf() statement (currently prints)
char word[50];
inFile = (&filename, "r");
printf("infile\n"); // test printf() statement (currently prints)
while (1){
printf("while"); // test printf() statement (doesn't print)
fscanf(inFile, "%s", word);
if (feof(inFile))
break;
printf("%d", wordCount); //test printf() statement
wordCount++;
}
fclose(inFile);
return wordCount;
}
Run Code Online (Sandbox Code Playgroud)
如你所见,我打印"infile",但不是"while".我遇到了分段错误.有谁知道为什么这不起作用另外,我的inFile = (&filename, "r");
陈述是否正确?我指点不是那么好.
我有两个java类.Schedule是使用被调用的Jobs数组的主类deadline
.我在将数据放入数组时遇到问题.我有一个for循环,从文本文件中读取数据(它工作正常)并插入某些数据deadline
.我没有成功创建,deadline
因为每当我想开始插入数组时,我得到了一个NullPointerException
.(下面的代码...
显然不是我实际编码的,但它仍然是相同的情况.)
自从我用Java编写代码已经有一段时间了,所以我可能只是忽略了一些简单的东西,但我不确定它是什么...感谢您提供的任何帮助.
public class Schedule {
private Job []deadline;
Schedule (int n){
Job[] deadline = new Job[n];
}
...
int n = 7;
Schedule schedule = new Schedule(n);
deadline[0] = new Job("A",3,40); // This line won't compile. NullPointerException
}
public class Job {
private String name;
private int deadline;
private int profit;
Job(String n, int d, int p){
name = n;
deadline = d;
profit = p;
}
}
Run Code Online (Sandbox Code Playgroud)