CMakeList鏈接mysql出現/usr/bin/ld: 找不到 -lmysqlclient

C++鏈接mysql時出現錯誤:

/usr/bin/ld: 找不到 -lmysqlclient
collect2: 錯誤:ld 返回 1
make[2]: *** [../bin/hik] 錯誤 1
make[1]: *** [src/CMakeFiles/hik.dir/all] 錯誤 2

解決:

  • 先找mysqlclient在那裏

locate mysqlclient
在這裏插入圖片描述

  • 因此在CMakeList.txt中添加下面一句:
link_directories(/usr/lib64/mysql)

然後繼續cmake ..make,發現出現如下錯誤:

LZTtools.cpp:(.text+0x1d):對‘mysql_init’未定義的引用
LZTtools.cpp:(.text+0x5b):對‘mysql_real_connect’未定義的引用
LZTtools.cpp:(.text+0x74):對‘mysql_error’未定義的引用
LZTtools.cpp:(.text+0xcc):對‘mysql_query’未定義的引用
LZTtools.cpp:(.text+0xde):對‘mysql_store_result’未定義的引用
LZTtools.cpp:(.text+0xee):對‘mysql_num_rows’未定義的引用
LZTtools.cpp:(.text+0x35f):對‘mysql_fetch_row’未定義的引用

解決:

  • 修改CMakeList.txt的target_link_libraries
target_link_libraries(${PROJECT_NAME}  libmysqlclient.so)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章