我试图了解静态和共享库.
我想要执行以下操作来创建一个makefile,它将单独的编译和链接分开,以便在形成最终的静态可执行文件时创建和链接静态库.
我有Makefile的以下代码,但我收到以下错误
Makefile:13: *** missing separator. Stop.
但我也试图了解如何实际链接/创建库.
如果我line 12在终端中运行命令后它们工作,而不是在makefile中.
myProgram: main.o addSorted.o freeLinks.o
gcc -lm -o myProgram main.o addSorted.o freeLinks.o
main.o: main.c
gcc -O -c -lm main.c main.h
addSorted.o: addSorted.c addSorted.h
gcc -O -c -lm addSorted.c
freeLinks.o: freeLinks.c freeLinks.h
gcc -O -c -lm freeLinks.c
ar rc libmylib.a main.o addSorted.o freeLinks.o //Error Line
ranlib libmylib.a
gcc -o foo -L. -lmylib foo.o
clean:
rm -f myProgram main.o addSorted.o freeLinks.o
Run Code Online (Sandbox Code Playgroud)
此外,如果您可以协助改进代码,我将非常感激.
有人可以帮助并向我解释如何将以下Java 1.8代码转换为Java 1.6吗?
private java.util.Optional<Edge<T>> findEdge(Node<T> node)
{
return edges.stream()
.filter(edge -> edge.isBetween(this, node))
.findFirst();
}
public boolean removeEdge(Node<T> node)
{
*java.util.Optional<Edge<T>> optional = findEdge(node);*
if (optional.isPresent())
{
return edges.remove(optional.get());
}
return false;
}
public boolean hasEdge(Node<T> node)
{
return findEdge(node).*isPresent();*
}
Run Code Online (Sandbox Code Playgroud) 我的程序使用基于指针的链表.它打开一个文本文件,添加(a)/删除(d)指定链接列表的内容.
该程序在Netbeans(MAC OS X)上运行.但是当我在Linux(RHEL 6.5)上运行程序时,我遇到了分段错误.
我跑了gdb,得到了下面发布的错误.任何帮助,将不胜感激.
码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Node
{
char name[42];
struct Node* prev;
struct Node* next;
};
struct List
{
struct Node* head;
struct Node* tail;
};
struct Node* Allocate_node()
{
struct Node *temp = malloc(sizeof (struct Node));
if (temp == NULL)
{
printf("Error: Memory Could Not Be Allocated");
exit(EXIT_FAILURE);
}
temp->prev = NULL;
temp->next = NULL;
return temp;
} /* Allocate_node */
void Free_node(struct Node* node)
{
free(node);
} /* Free_node */ …Run Code Online (Sandbox Code Playgroud)