大佬教程收集整理的这篇文章主要介绍了尝试编译使用共享库的C程序时出错,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我编译了共享库没有问题,但是当我尝试编译使用此库的可执行文件时,我有以下错误:iface / libtestlib.so:未定义引用’ALIB :: function()’
我做了什么
@R_74_10673@下事情:
// HEADER #ifndef ALIB_H #define ALIB_H namespace ALIB{ int function(); } #endif ------------------------------------------- // sourcE #include "alib.h" using namespace ALIB; int aLIB::function(){ return 101; }
C库的C接口($project_dir / iface中的文件)
// HEADER #ifndef IFACE_H #define IFACE_H #include "alib.h" extern "C"{ int IFACE_function(); } #endif -------------------------------- // sourcE #include "iface.h" int IFACE_function(){ return ALIB::function(); } -------------------------------------------------------- // CMakeLists used to build the library: cmake_minimum_required(VERSION 2.8) PROjeCT( testlib ) include_directories( ../lib1 ) add_library( testlib SHARED iface.cpp )
使用该库的可执行文件($project_dir / main中的文件):
// sourcE #include "iface.h" #include <iostream> using namespace std; int main(){ cout << IFACE_function() << endl; } ------------------------------------- // CMakeLists used to build the executable (file in `$project_dir`): cmake_minimum_required(VERSION 2.8) PROjeCT( testlib ) find_library( LIB NAMES testlib PATHS ./iface ) include_directories( ./lib1 ./iface ) add_executable( testlib ./main/main.cpp ) target_link_libraries( testlib ${LIB} )
$PROjeCT_DIR:
全部由cmake生成. (CmakeLists.txt,CMakeCache,cmake_install.cmake,MakeFilE)
$PROjeCT_DIR / LIB1:
alib.cpp和alib.h
$PROjeCT_DIR / IFACE:
iface.cpp,iface.h,libtestlib.so和所有由cmake生成的.
$PROjeCT_DIR /主:@H_39_32@main.cpp中.
作为树:
$project_dir ├── CMakeCache.txt ├── CMakeFiles │ ├── ... ├── cmake_install.cmake ├── CMakeLists.txt ├── CMakeLists.txt~ ├── iface │ ├── CMakeCache.txt │ ├── CMakeFiles │ │ ├── ... │ ├── cmake_install.cmake │ ├── CMakeLists.txt │ ├── CMakeLists.txt~ │ ├── iface.cpp │ ├── iface.h │ ├── libtestlib.so │ └── Makefile ├── lib1 │ ├── alib.cpp │ └── alib.h ├── main │ └── main.cpp └── Makefile
以上是大佬教程为你收集整理的尝试编译使用共享库的C程序时出错全部内容,希望文章能够帮你解决尝试编译使用共享库的C程序时出错所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。