[英]Error while compiling Ethos framework
I'm trying make Ethos framework on Mac OS Lion. 我正在尝试在Mac OS Lion上制作Ethos框架。 git://git.dronelabs.com/ethos
git://git.dronelabs.com/ethos
Here result of ./configure: 这是./configure的结果:
Ethos 0.2.3
Prefix...................: /usr/local
Debug level..............: minimum
Maintainer Compiler flags: no
Build API reference......: no
Enable test suite........: yes
Bindings
GObject Introspection....: no
Vala Bindings............: no
Python Bindings..........: no
Javascript Bindings......: no
Now type `make' to compile ethos
Then I do sudo make, and while compiling arise an error: 然后我做sudo make,在编译时出现错误:
Making all in c-plugins
CC libsample.so
Undefined symbols for architecture x86_64:
"_ethos_plugin_get_type", referenced from:
_my_plugin_get_type in cc3gPLKS.o
_my_plugin_class_init in cc3gPLKS.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[3]: *** [libsample.so] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
How can I fix it? 我该如何解决?
I found that Ethos can be installed on Mac OS X 10.7 after the following modifications: 我发现经过以下修改后,可以在Mac OS X 10.7上安装Ethos:
1)Edit file: ethos_dir/ethos/ethos_manager.c (:194): 1)编辑文件:ethos_dir / ethos / ethos_manager.c(:194):
FROM: 从:
while (NULL != (filename = g_dir_read_name (dir))) {
if (g_str_has_suffix (filename, "." G_MODULE_SUFFIX)) {
abspath = g_build_filename (loaders_dir, filename, NULL);
loader = ethos_manager_create_plugin_loader (manager, abspath);
if (loader != NULL)
loaders = g_list_prepend (loaders, loader);
g_free (abspath);
}
}
TO: 至:
while (NULL != (filename = g_dir_read_name (dir))) {
#ifdef __APPLE__
gchar* suffix = "dylib"; // to able find ethos-plugin-loader
#else
gchar* suffix = ("." G_MODULE_SUFFIX);
#endif
if (g_str_has_suffix (filename, suffix)) {
abspath = g_build_filename (loaders_dir, filename, NULL);
loader = ethos_manager_create_plugin_loader (manager, abspath);
if (loader != NULL)
loaders = g_list_prepend (loaders, loader);
g_free (abspath);
}
}
2)Disable making for: ethos-dir/tests, Change in Makefile.am 2)禁止制作:ethos-dir / tests,更改Makefile.am
FROM: 从:
line#: contents
02: SUBDIRS = c-plugins manager-dep
30: manager_sources = manager.c
31: plugin_info_sources = plugin-info.c
TO: 至:
02: #SUBDIRS = c-plugins manager-dep
30: #manager_sources = manager.c
31: #plugin_info_sources = plugin-info.c
This is necessary because, while making process it cannot find libethos. 这是必要的,因为在进行处理时找不到libethos。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.