1

我在编译最新版本的 Frama-C 时遇到问题。我做了什么:

wget http://frama-c.com/download/frama-c-Neon-20140301.tar.gz
tar -xzf frama-c-Neon-20140301.tar.gz 
cd frama-c-Neon-20140301/
./configure --prefix=/usr/local
make

一分钟后我明白了

Packing      lib/plugins/Wp.cma
Linking      bin/toplevel.byte
/tmp/ccLwedhX.o:(.data+0x4529f0): undefined reference to `terminate_process'
/tmp/ccLwedhX.o:(.data+0x4529f4): undefined reference to `ml_usleep'
/tmp/ccLwedhX.o:(.data+0x4529f8): undefined reference to `getperfcount'
/tmp/ccLwedhX.o:(.data+0x4529fc): undefined reference to `getperfcount1024'
/tmp/ccLwedhX.o:(.data+0x452a00): undefined reference to `address_of_value'
/tmp/ccLwedhX.o:(.data+0x452a04): undefined reference to `set_round_nearest_even'
/tmp/ccLwedhX.o:(.data+0x452a08): undefined reference to `single_precision_of_string'
/tmp/ccLwedhX.o:(.data+0x452a0c): undefined reference to `round_to_float'
/tmp/ccLwedhX.o:(.data+0x452a10): undefined reference to `set_round_upward'
/tmp/ccLwedhX.o:(.data+0x452a14): undefined reference to `set_round_downward'
/tmp/ccLwedhX.o:(.data+0x452a18): undefined reference to `float_is_negative'
/tmp/ccLwedhX.o:(.data+0x452a1c): undefined reference to `float_compare_total'
src/buckx/buckx_c.o: In function `round_to_float(long)':
buckx_c.c:(.text+0x45): undefined reference to `caml_copy_double(double)'
src/buckx/buckx_c.o: In function `single_precision_of_string(long)':
buckx_c.c:(.text+0x180): undefined reference to `caml_string_length(long)'
buckx_c.c:(.text+0x194): undefined reference to `caml_copy_double(double)'
buckx_c.c:(.text+0x1a7): undefined reference to `caml_failwith(char const*)'
collect2: error: ld returned 1 exit status
File "_none_", line 1, characters 0-1:
Error: Error while building custom runtime system
make: *** [bin/toplevel.byte] Error 2

我正在使用 gcc 4.8.1、Ubuntu 12.04、ocaml 3.12.1

更新: VERBOSEMAKE=yes make

ocamlc.opt -w +a-4-6-9-41-44-45  -annot  -g -I src/misc -I src/ai -I src/memory_state -I src/toplevel -I src/slicing_types -I src/pdg_types -I src/kernel -I src/logic -I src/lib -I src/printer -I src/project -I src/type -I src/buckx -I src/gui -I external -I cil/src -I cil/src/ext -I cil/src/frontc -I cil/src/logic -I cil/ocamlutil -I lib/plugins -I lib     -linkall -custom -o bin/toplevel.byte nums.cma unix.cma bigarray.cma str.cma dynlink.cma   lib/graph.cmo src/buckx/buckx_c.o   external/unmarshal.cmo external/unmarshal_nums.cmo external/sysutil.cmo src/lib/dynlink_common_interface.cmo src/type/structural_descr.cmo src/type/type.cmo src/type/descr.cmo src/lib/FCSet.cmo src/lib/FCMap.cmo src/lib/FCHashtbl.cmo src/lib/extlib.cmo src/lib/pretty_utils.cmo src/lib/hook.cmo src/lib/bag.cmo src/lib/indexer.cmo src/lib/vector.cmo src/lib/bitvector.cmo src/lib/qstack.cmo src/lib/integer.cmo src/lib/filepath.cmo src/kernel/config.cmo src/kernel/log.cmo src/kernel/cmdline.cmo src/project/project_skeleton.cmo src/type/datatype.cmo src/kernel/journal.cmo src/project/state.cmo src/project/state_dependency_graph.cmo src/project/state_topological.cmo src/project/state_selection.cmo src/project/project.cmo src/project/state_builder.cmo src/kernel/typed_parameter.cmo src/kernel/dynamic.cmo src/kernel/parameter_customize.cmo src/kernel/parameter_state.cmo src/kernel/parameter_builder.cmo src/kernel/plugin.cmo src/kernel/kernel.cmo src/kernel/emitter.cmo src/lib/floating_point.cmo src/lib/rangemap.cmo src/lib/binary_cache.cmo external/hptmap.cmo src/lib/hptset.cmo src/printer/printer_builder.cmo cil/src/cilmsg.cmo cil/ocamlutil/alpha.cmo cil/ocamlutil/cilconfig.cmo cil/src/cil_datatype.cmo cil/src/cil_state_builder.cmo cil/src/logic/utf8_logic.cmo cil/src/machdep_x86_16.cmo cil/src/machdep_x86_32.cmo cil/src/machdep_x86_64.cmo cil/src/machdep_ppc_32.cmo cil/src/cil_const.cmo cil/src/logic/logic_env.cmo cil/src/escape.cmo cil/src/logic/logic_const.cmo cil/src/cil.cmo src/printer/cil_printer.cmo src/printer/cil_descriptive_printer.cmo cil/src/frontc/errorloc.cmo cil/src/frontc/cabs.cmo cil/src/ext/expcompare.cmo cil/src/frontc/cabs_debug.cmo cil/src/frontc/cabshelper.cmo cil/src/logic/logic_utils.cmo cil/src/logic/logic_builtin.cmo cil/src/logic/logic_print.cmo cil/src/logic/logic_parser.cmo cil/src/logic/logic_lexer.cmo cil/src/frontc/lexerhack.cmo cil/src/mergecil.cmo cil/src/rmtmps.cmo cil/src/logic/logic_typing.cmo cil/src/frontc/cprint.cmo cil/src/frontc/cabscond.cmo cil/src/frontc/cabsvisit.cmo cil/src/frontc/cabs2cil.cmo cil/src/frontc/clexer.cmo cil/src/frontc/cparser.cmo cil/src/logic/logic_preprocess.cmo cil/src/frontc/frontc.cmo cil/src/ext/callgraph.cmo cil/src/ext/dataflow.cmo cil/src/ext/oneret.cmo cil/src/ext/cfg.cmo src/buckx/buckx.cmo src/kernel/ast_info.cmo src/kernel/ast.cmo src/kernel/globals.cmo src/kernel/kernel_function.cmo src/logic/property.cmo src/logic/property_status.cmo src/logic/annotations.cmo src/printer/printer.cmo src/kernel/stmts_graph.cmo cil/src/ext/ordered_stmt.cmo cil/src/ext/dataflows.cmo cil/src/ext/dataflow2.cmo cil/src/ext/usedef.cmo cil/src/ext/liveness.cmo cil/src/ext/reachingdefs.cmo cil/src/ext/availexpslv.cmo cil/src/ext/rmciltmps.cmo cil/src/ext/deadcodeelim.cmo src/kernel/dominators.cmo src/logic/description.cmo src/logic/statuses_by_call.cmo src/kernel/alarms.cmo src/kernel/messages.cmo src/ai/abstract_interp.cmo src/ai/int_Base.cmo src/kernel/unicode.cmo src/misc/service_graph.cmo src/ai/ival.cmo src/misc/bit_utils.cmo src/ai/lattice_Interval_Set.cmo src/ai/base.cmo src/ai/origin.cmo src/ai/map_Lattice.cmo src/ai/trace.cmo src/memory_state/locations.cmo src/memory_state/value_messages.cmo src/kernel/cilE.cmo src/memory_state/int_Interv.cmo src/memory_state/int_Interv_Map.cmo src/memory_state/tr_offset.cmo src/memory_state/offsetmap.cmo src/memory_state/offsetmap_bitwise.cmo src/memory_state/lmap.cmo src/memory_state/lmap_bitwise.cmo src/memory_state/function_Froms.cmo src/memory_state/cvalue.cmo src/memory_state/widen_type.cmo src/kernel/visitor.cmo cil/src/frontc/cabsbranches.cmo src/kernel/loop.cmo src/memory_state/inout_type.cmo src/pdg_types/pdgIndex.cmo src/pdg_types/pdgTypes.cmo src/pdg_types/pdgMarks.cmo src/slicing_types/slicingInternals.cmo src/slicing_types/slicingTypes.cmo src/memory_state/value_types.cmo src/kernel/db.cmo src/kernel/command.cmo src/kernel/task.cmo src/kernel/file.cmo src/logic/translate_lightweight.cmo src/kernel/unroll_loops.cmo src/misc/filter.cmo src/kernel/special_hooks.cmo src/logic/logic_interp.cmo src/logic/infer_annotations.cmo src/logic/allocates.cmo lib/plugins/Metrics.cmo lib/plugins/Syntactic_callgraph.cmo lib/plugins/Value.cmo lib/plugins/Occurrence.cmo lib/plugins/RteGen.cmo lib/plugins/From.cmo lib/plugins/Users.cmo lib/plugins/Constant_Propagation.cmo lib/plugins/Postdominators.cmo lib/plugins/Inout.cmo lib/plugins/Semantic_callgraph.cmo lib/plugins/Impact.cmo lib/plugins/Pdg.cmo lib/plugins/Scope.cmo lib/plugins/Sparecode.cmo lib/plugins/Slicing.cmo src/kernel/boot.cmo
/tmp/ccg2Te0Y.o:(.data+0x4529f0): undefined reference to `terminate_process'
/tmp/ccg2Te0Y.o:(.data+0x4529f4): undefined reference to `ml_usleep'
/tmp/ccg2Te0Y.o:(.data+0x4529f8): undefined reference to `getperfcount'
/tmp/ccg2Te0Y.o:(.data+0x4529fc): undefined reference to `getperfcount1024'
/tmp/ccg2Te0Y.o:(.data+0x452a00): undefined reference to `address_of_value'
/tmp/ccg2Te0Y.o:(.data+0x452a04): undefined reference to `set_round_nearest_even'
/tmp/ccg2Te0Y.o:(.data+0x452a08): undefined reference to `single_precision_of_string'
/tmp/ccg2Te0Y.o:(.data+0x452a0c): undefined reference to `round_to_float'
/tmp/ccg2Te0Y.o:(.data+0x452a10): undefined reference to `set_round_upward'
/tmp/ccg2Te0Y.o:(.data+0x452a14): undefined reference to `set_round_downward'
/tmp/ccg2Te0Y.o:(.data+0x452a18): undefined reference to `float_is_negative'
/tmp/ccg2Te0Y.o:(.data+0x452a1c): undefined reference to `float_compare_total'
src/buckx/buckx_c.o: In function `round_to_float(long)':
buckx_c.c:(.text+0x45): undefined reference to `caml_copy_double(double)'
src/buckx/buckx_c.o: In function `single_precision_of_string(long)':
buckx_c.c:(.text+0x180): undefined reference to `caml_string_length(long)'
buckx_c.c:(.text+0x194): undefined reference to `caml_copy_double(double)'
buckx_c.c:(.text+0x1a7): undefined reference to `caml_failwith(char const*)'
collect2: error: ld returned 1 exit status
File "_none_", line 1, characters 0-1:
Error: Error while building custom runtime system
make: *** [bin/toplevel.byte] Error 2

VERBOSEMAKE 提供几乎相同的信息。

4

0 回答 0