小编use*_*714的帖子

C:使用Makefile创建静态库和链接

我试图了解静态和共享库.

我想要执行以下操作来创建一个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)

此外,如果您可以协助改进代码,我将非常感激.

c makefile static-libraries

15
推荐指数
2
解决办法
4万
查看次数

将带有lambda表达式的Java 8代码转换为Java 6

有人可以帮助并向我解释如何将以下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)

java lambda java-6 java-8

2
推荐指数
1
解决办法
4999
查看次数

C:分段错误:在NetBeans(OS X)上运行,但在Linux上运行

我的程序使用基于指针的链表.它打开一个文本文件,添加(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)

c linux netbeans linked-list segmentation-fault

2
推荐指数
1
解决办法
314
查看次数