Visual Studio Express 2012 + GLPK 4.6 for windowsで、
error LNK2001: 外部シンボル "_glp_version" は未解決です。
が出ます。ソースコードを末尾に示しましたが、解決法を教えて頂ければ幸いです。
#自力でやった問題の切り分け
###1 マングリングの問題ではなさそうです
エラーからもソースコードからも分かるとおり、C++でCの関数を呼ぶための作法は守られています。
###2 ライブラリパスの問題ではなさそうです
glpk_4_60.libを例えばglpk_4_60dummy.libに変えると
error LNK1104: ファイル 'glpk_4_60dummy.lib' を開くことができません。
というエラーに変わります。また、同名のファイルがシステム上に存在しないことも確認済です。
###3 ライブラリの中身も壊れていないようです
「VS2012開発者コマンドプロンプト」上で下記のコマンドを実行しました。
cmd
1> dumpbin /exports glpk_4_60.lib 2 3File Type: LIBRARY 4 5 Exports 6 7 ordinal name 8 9 glp_add_arc 10 glp_add_cols 11 glp_add_rows 12 glp_add_vertices 13 glp_adv_basis 14 glp_alloc 15 glp_analyze_bound 16 glp_analyze_coef 17 glp_asnprob_hall 18 glp_asnprob_lp 19 glp_asnprob_okalg 20 glp_assert_ 21 glp_at_error 22 glp_bf_exists 23 glp_bf_updated 24 glp_btran 25 glp_check_asnprob 26 glp_check_cnfsat 27 glp_check_dup 28 glp_check_kkt 29 glp_close_tee 30 glp_copy_prob 31 glp_cpp 32 glp_cpx_basis 33 glp_create_graph 34 glp_create_index 35 glp_create_prob 36 glp_create_v_index 37 glp_del_arc 38 glp_del_cols 39 glp_del_rows 40 glp_del_vertices 41 glp_delete_graph 42 glp_delete_index 43 glp_delete_prob 44 glp_delete_v_index 45 glp_difftime 46 glp_dual_rtest 47 glp_erase_graph 48 glp_erase_prob 49 glp_error_ 50 glp_error_hook 51 glp_eval_tab_col 52 glp_eval_tab_row 53 glp_exact 54 glp_factorize 55 glp_find_col 56 glp_find_row 57 glp_find_vertex 58 glp_free 59 glp_free_env 60 glp_ftran 61 glp_get_bfcp 62 glp_get_bhead 63 glp_get_col_bind 64 glp_get_col_dual 65 glp_get_col_kind 66 glp_get_col_lb 67 glp_get_col_name 68 glp_get_col_prim 69 glp_get_col_stat 70 glp_get_col_type 71 glp_get_col_ub 72 glp_get_dual_stat 73 glp_get_it_cnt 74 glp_get_mat_col 75 glp_get_mat_row 76 glp_get_num_bin 77 glp_get_num_cols 78 glp_get_num_int 79 glp_get_num_nz 80 glp_get_num_rows 81 glp_get_obj_coef 82 glp_get_obj_dir 83 glp_get_obj_name 84 glp_get_obj_val 85 glp_get_prim_stat 86 glp_get_prob_name 87 glp_get_rii 88 glp_get_row_bind 89 glp_get_row_dual 90 glp_get_row_lb 91 glp_get_row_name 92 glp_get_row_prim 93 glp_get_row_stat 94 glp_get_row_type 95 glp_get_row_ub 96 glp_get_sjj 97 glp_get_status 98 glp_get_unbnd_ray 99 glp_gridgen 100 glp_init_cpxcp 101 glp_init_env 102 glp_init_iocp 103 glp_init_iptcp 104 glp_init_mpscp 105 glp_init_smcp 106 glp_interior 107 glp_intfeas1 108 glp_intopt 109 glp_ios_add_row 110 glp_ios_best_node 111 glp_ios_branch_upon 112 glp_ios_can_branch 113 glp_ios_clear_pool 114 glp_ios_curr_node 115 glp_ios_del_row 116 glp_ios_get_prob 117 glp_ios_heur_sol 118 glp_ios_mip_gap 119 glp_ios_next_node 120 glp_ios_node_bound 121 glp_ios_node_data 122 glp_ios_node_level 123 glp_ios_pool_size 124 glp_ios_prev_node 125 glp_ios_reason 126 glp_ios_row_attr 127 glp_ios_select_node 128 glp_ios_terminate 129 glp_ios_tree_size 130 glp_ios_up_node 131 glp_ipt_col_dual 132 glp_ipt_col_prim 133 glp_ipt_obj_val 134 glp_ipt_row_dual 135 glp_ipt_row_prim 136 glp_ipt_status 137 glp_load_matrix 138 glp_maxflow_ffalg 139 glp_maxflow_lp 140 glp_mem_limit 141 glp_mem_usage 142 glp_mincost_lp 143 glp_mincost_okalg 144 glp_mincost_relax4 145 glp_minisat1 146 glp_mip_col_val 147 glp_mip_obj_val 148 glp_mip_row_val 149 glp_mip_status 150 glp_mpl_alloc_wksp 151 glp_mpl_build_prob 152 glp_mpl_free_wksp 153 glp_mpl_generate 154 glp_mpl_init_rand 155 glp_mpl_postsolve 156 glp_mpl_read_data 157 glp_mpl_read_model 158 glp_netgen 159 glp_netgen_prob 160 glp_open_tee 161 glp_prim_rtest 162 glp_print_ipt 163 glp_print_mip 164 glp_print_ranges 165 glp_print_sol 166 glp_printf 167 glp_puts 168 glp_read_asnprob 169 glp_read_ccdata 170 glp_read_cnfsat 171 glp_read_graph 172 glp_read_ipt 173 glp_read_lp 174 glp_read_maxflow 175 glp_read_mincost 176 glp_read_mip 177 glp_read_mps 178 glp_read_prob 179 glp_read_sol 180 glp_realloc 181 glp_rmfgen 182 glp_scale_prob 183 glp_set_bfcp 184 glp_set_col_bnds 185 glp_set_col_kind 186 glp_set_col_name 187 glp_set_col_stat 188 glp_set_graph_name 189 glp_set_it_cnt 190 glp_set_mat_col 191 glp_set_mat_row 192 glp_set_obj_coef 193 glp_set_obj_dir 194 glp_set_obj_name 195 glp_set_prob_name 196 glp_set_rii 197 glp_set_row_bnds 198 glp_set_row_name 199 glp_set_row_stat 200 glp_set_sjj 201 glp_set_vertex_name 202 glp_simplex 203 glp_sort_matrix 204 glp_std_basis 205 glp_strong_comp 206 glp_term_hook 207 glp_term_out 208 glp_time 209 glp_top_sort 210 glp_transform_col 211 glp_transform_row 212 glp_unscale_prob 213 glp_version 214 glp_vprintf 215 glp_warm_up 216 glp_wclique_exact 217 glp_weak_comp 218 glp_write_asnprob 219 glp_write_ccdata 220 glp_write_cnfsat 221 glp_write_graph 222 glp_write_ipt 223 glp_write_lp 224 glp_write_maxflow 225 glp_write_mincost 226 glp_write_mip 227 glp_write_mps 228 glp_write_prob 229 glp_write_sol 230 231 Summary 232 233 C9 .debug$S 234 14 .idata$2 235 14 .idata$3 236 8 .idata$4 237 8 .idata$5 238 E .idata$6
#何か初歩的な盲点がありそうな気はしているのですが、困ってしまっています
どなたか、ヒントでも構いませんので、よろしくお願いいたします。
ソースコードは下記の通りです。
Cpp
1#include <stdio.h> 2#include <tchar.h> 3#include <iostream> 4#include <Windows.h> 5extern "C"{ 6#include "glpk.h" 7} 8#pragma comment(lib, "glpk_4_60.lib") 9 10int _tmain(int argc, _TCHAR* argv[]) 11{ 12 std::cout << glp_version() << std::endl; 13 system("pause"); 14 return 0; 15}
回答4件
あなたの回答
tips
プレビュー