我正在尝试使用点创建图表。但是,似乎无法识别固定大小等属性。因此,我正在尝试添加graphviz库,但我不知道如何使用.deb文件并在C中使用私有库。这是我的代码,其中fixedsize属性不起作用。我希望调整节点中的文本并使节点大小相同。
digraph test
{
rankdir = LR;
"Activity" [shape=circle;fixedsize="true";width=.5;height=.5;fontsize=5];
"onCreate()" [shape=circle;fixedsize="true";width=.5;height=.5;fontsize=5];
"Activity" -> "onCreate()"
"onCreate()" [shape=circle;fixedsize="true";width=.5;height=.5;fontsize=5];
"onStart()" [shape=circle;fixedsize="true";width=.5;height=.5;fontsize=5];
"onCreate()" -> "onStart()"
"onStart()" [shape=circle;fixedsize="true";width=.5;height=.5;fontsize=5];
"onResume()" [shape=circle;fixedsize="true";width=.5;height=.5;fontsize=5];
"onStart()" -> "onResume()"
"Activity" [shape=circle;fixedsize="true";width=.5;height=.5;fontsize=5];
"Activity Running" [shape=circle;fixedsize="true";width=.5;height=.5;fontsize=5];
"Activity" -> "Activity Running"
}
答案 0 :(得分:0)
这不是fixedsize
属性的工作原理:
如果 false ,节点的大小由包含其标签所需的最小宽度和高度决定。
如果 true ,则节点大小仅由width和height属性的值指定,并且不会展开以包含文本标签。如果标签(带边距)不符合这些限制,则会出现警告。
如果fixedsize属性设置为 shape ,则width和height属性也会确定节点形状的大小,但标签可能会大得多。 [...]如果标签太大,则会给出无警告。
永远不会调整文本大小以适应节点,如果文本不符合形状大小,则只能发出警告(使用fixedsize=true
)。
您可以解析警告并减少相关节点的字体大小,直到没有警告为止。
答案 1 :(得分:0)
对于使用库,您需要安装开发包。APT system
中的开发包,命名为yourpackage-dev,为您的答案,Debian repository
具有:graphviz-dev
包。
但是当您使用额外的库进行编译时:
每个plibrary都有一个soname,如pthread
,请查看以下代码:
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *print_message_function( void *ptr );
main()
{
pthread_t thread1, thread2;
const char *message1 = "Thread 1";
const char *message2 = "Thread 2";
int iret1, iret2;
/* Create independent threads each of which will execute function */
iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);
iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);
/* Wait till threads are complete before main continues. Unless we */
/* wait we run the risk of executing an exit which will terminate */
/* the process and all threads before the threads have completed. */
pthread_join( thread1, NULL);
pthread_join( thread2, NULL);
printf("Thread 1 returns: %d\n",iret1);
printf("Thread 2 returns: %d\n",iret2);
exit(0);
}
void *print_message_function( void *ptr )
{
char *message;
message = (char *) ptr;
printf("%s \n", message);
}
编译代码:
mohsen@debian:~$ gcc pthread.c
/tmp/cchaTHSA.o: In function `main':
pthread.c:(.text+0x39): undefined reference to `pthread_create'
pthread.c:(.text+0x61): undefined reference to `pthread_create'
pthread.c:(.text+0x79): undefined reference to `pthread_join'
pthread.c:(.text+0x8d): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
你看到我从链接器收到错误,因为它需要我引入它pthread
库,如:
mohsen@debian:~$ gcc -lpthread pthread.c
mohsen@debian:~$ ./a.out
Thread 1
Thread 2
Thread 1 returns: 0
Thread 2 returns: 0
mohsen@debian:~$
-lLIBRARY_NAME
向gcc介绍了一个库。