Results 1 to 1 of 1

Thread: Combining Two Static Libraries

  1. #1
    Join Date
    May 2008
    Beans
    1,029

    Question Combining Two Static Libraries

    I've got a library (libplot.a) that depends on libpng 1.4. However, I've got libpng 1.5 installed which is not compatible with libplot. Can I combine libpng14 into libplot so that it is independent of libpng and can leave libpng15 on my system? Or might this cause problems?

    Contents of libplot.a:
    Code:
    libplot
    a_attribs.o
    a_closepl.o
    a_color.o
    a_defplot.o
    a_erase.o
    a_openpl.o
    a_path.o
    a_point.o
    a_text.o
    apinewc.o
    apioldc.o
    apioldcc.o
    b_closepl.o
    b_defplot.o
    b_erase.o
    b_openpl.o
    b_path.o
    b_point.o
    c_attribs.o
    c_closepl.o
    c_color.o
    c_defplot.o
    c_emit.o
    c_erase.o
    c_mark.o
    c_openpl.o
    c_path.o
    c_point.o
    c_text.o
    f_closepl.o
    f_color.o
    f_color2.o
    f_defplot.o
    f_erase.o
    f_openpl.o
    f_path.o
    f_point.o
    f_retrieve.o
    f_text.o
    g_affine.o
    g_alab_her.o
    g_alabel.o
    g_arc.o
    g_attrib.o
    g_bez.o
    g_box.o
    g_circ.o
    g_clipper.o
    g_closepl.o
    g_cntrlify.o
    g_colors.o
    g_dash.o
    g_dash2.o
    g_defplot.o
    g_defstate.o
    g_ellipse.o
    g_endpath.o
    g_erase.o
    g_error.o
    g_flushpl.o
    g_font.o
    g_fontd2.o
    g_fontdb.o
    g_havecap.o
    g_her_glyph.o
    g_integer.o
    g_line.o
    g_linewidth.o
    g_mark.o
    g_matrix.o
    g_miscmi.o
    g_move.o
    g_openpl.o
    g_outbuf.o
    g_outfile.o
    g_pagetype.o
    g_param.o
    g_param2.o
    g_path.o
    g_pentype.o
    g_point.o
    g_range.o
    g_relative.o
    g_retrieve.o
    g_savestate.o
    g_space.o
    g_subpaths.o
    g_vector.o
    g_version.o
    g_write.o
    g_xmalloc.o
    g_xstring.o
    h_attribs.o
    h_closepl.o
    h_color.o
    h_defplot.o
    h_erase.o
    h_font.o
    h_openpl.o
    h_path.o
    h_point.o
    h_text.o
    i_closepl.o
    i_color.o
    i_defplot.o
    i_erase.o
    i_openpl.o
    i_path.o
    i_point.o
    i_rle.o
    m_attribs.o
    m_closepl.o
    m_defplot.o
    m_emit.o
    m_erase.o
    m_mark.o
    m_openpl.o
    m_path.o
    m_point.o
    m_text.o
    mi_alloc.o
    mi_api.o
    mi_arc.o
    mi_canvas.o
    mi_fllarc.o
    mi_fllrct.o
    mi_fplycon.o
    mi_gc.o
    mi_ply.o
    mi_plycon.o
    mi_plygen.o
    mi_plypnt.o
    mi_plyutil.o
    mi_spans.o
    mi_version.o
    mi_widelin.o
    mi_zerarc.o
    mi_zerolin.o
    n_defplot.o
    n_write.o
    p_closepl.o
    p_color.o
    p_color2.o
    p_defplot.o
    p_erase.o
    p_openpl.o
    p_path.o
    p_point.o
    p_text.o
    r_attribs.o
    r_closepl.o
    r_color.o
    r_defplot.o
    r_erase.o
    r_openpl.o
    _path.oo
    r_point.o
    s_closepl.o
    s_color.o
    s_defplot.o
    s_erase.o
    s_openpl.o
    s_path.o
    s_point.o
    s_text.o
    t_attribs.o
    t_closepl.o
    t_color.o
    t_color2.o
    t_defplot.o
    t_erase.o
    t_openpl.o
    t_path.o
    t_point.o
    t_tek_md.o
    t_tek_mv.o
    t_tek_vec.o
    z_defplot.o
    z_write.o
    Contents of libpng(14).a:
    Code:
    libpng
    0
    111
    135
    158
    180
    19
    202
    226
    250
    274
    296
    320
    41
    63
    87
    So, after extracting the contents of both and combining (ar rcs libplot.a *), the new archive looks like this:

    libplot.a:
    Code:
    libplot
    0
    111
    135
    158
    180
    19
    202
    226
    250
    274
    296
    320
    41
    63
    87
    a_attribs.o
    a_closepl.o
    a_color.o
    a_defplot.o
    a_erase.o
    a_openpl.o
    a_path.o
    a_point.o
    a_text.o
    apinewc.o
    apioldc.o
    apioldcc.o
    b_closepl.o
    b_defplot.o
    b_erase.o
    b_openpl.o
    b_path.o
    b_point.o
    c_attribs.o
    c_closepl.o
    c_color.o
    c_defplot.o
    c_emit.o
    c_erase.o
    c_mark.o
    c_openpl.o
    c_path.o
    c_point.o
    c_text.o
    f_closepl.o
    f_color.o
    f_color2.o
    f_defplot.o
    f_erase.o
    f_openpl.o
    f_path.o
    f_point.o
    f_retrieve.o
    f_text.o
    g_affine.o
    g_alab_her.o
    g_alabel.o
    g_arc.o
    g_attrib.o
    g_bez.o
    g_box.o
    g_circ.o
    g_clipper.o
    g_closepl.o
    g_cntrlify.o
    g_colors.o
    g_dash.o
    g_dash2.o
    g_defplot.o
    g_defstate.o
    g_ellipse.o
    g_endpath.o
    g_erase.o
    g_error.o
    g_flushpl.o
    g_font.o
    g_fontd2.o
    g_fontdb.o
    g_havecap.o
    g_her_glyph.o
    g_integer.o
    g_line.o
    g_linewidth.o
    g_mark.o
    g_matrix.o
    g_miscmi.o
    g_move.o
    g_openpl.o
    g_outbuf.o
    g_outfile.o
    g_pagetype.o
    g_param.o
    g_param2.o
    g_path.o
    g_pentype.o
    g_point.o
    g_range.o
    g_relative.o
    g_retrieve.o
    g_savestate.o
    g_space.o
    g_subpaths.o
    g_vector.o
    g_version.o
    g_write.o
    g_xmalloc.o
    g_xstring.o
    h_attribs.o
    h_closepl.o
    h_color.o
    h_defplot.o
    h_erase.o
    h_font.o
    h_openpl.o
    h_path.o
    h_point.o
    h_text.o
    i_closepl.o
    i_color.o
    i_defplot.o
    i_erase.o
    i_openpl.o
    i_path.o
    i_point.o
    i_rle.o
    m_attribs.o
    m_closepl.o
    m_defplot.o
    m_emit.o
    m_erase.o
    m_mark.o
    m_openpl.o
    m_path.o
    m_point.o
    m_text.o
    mi_alloc.o
    mi_api.o
    mi_arc.o
    mi_canvas.o
    mi_fllarc.o
    mi_fllrct.o
    mi_fplycon.o
    mi_gc.o
    mi_ply.o
    mi_plycon.o
    mi_plygen.o
    mi_plypnt.o
    mi_plyutil.o
    mi_spans.o
    mi_version.o
    mi_widelin.o
    mi_zerarc.o
    mi_zerolin.o
    n_defplot.o
    n_write.o
    p_closepl.o
    p_color.o
    p_color2.o
    p_defplot.o
    p_erase.o
    p_openpl.o
    p_path.o
    p_point.o
    p_text.o
    r_attribs.o
    r_closepl.o
    r_color.o
    r_defplot.o
    r_erase.o
    r_openpl.o
    _path.oo
    r_point.o
    s_closepl.o
    s_color.o
    s_defplot.o
    s_erase.o
    s_openpl.o
    s_path.o
    s_point.o
    s_text.o
    t_attribs.o
    t_closepl.o
    t_color.o
    t_color2.o
    t_defplot.o
    t_erase.o
    t_openpl.o
    t_path.o
    t_point.o
    t_tek_md.o
    t_tek_mv.o
    t_tek_vec.o
    z_defplot.o
    z_write.o
    ----- Edit -----

    I imagine this could potentially cause some problems if linking statically to libplot and libpng15.

    Also, I placed the libpng14 headers in a subfolder and included them in the libplot header.
    Last edited by dodle; November 19th, 2012 at 06:48 AM.

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •