C# 能链接 静态库不?

C++ 在与fortran 混编时 可以选择 静态库 链接方式。
C# 查遍网路 只看到 DLL动态库链接案例,难道不行吗?

c#
0

1个回答

对于dll只能用动态库,没有静态库,cpp的静态库只有cpp可以链接

1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
静态库 链接 静态库 的问题
我在这里看到多年以前有人提过这个问题:rnrn[color=#008080]有一个静态库工程,我添加了另一个静态库B到此工程中,编译链接后,形成的结果静态库A却没有包含B的接口函数,用测试程序测试时,链接出错. rnrn如果我现在的测试程序带上a.lib和b.lib,就可运行通过; rn如果只带上a.lib,出现链接错误,说找不到b.lib里的函数,这说明a.lib没有 rn包含b.lib的代码。 rnrnb.lib当然有一个xx.h文件是表示B的输出函数, rnA的工程要调用B里的函数,当然要#include "xx.h ", xx.h当然要在A的工程目录 rn下,b.lib也在A的工程目录下,这样编译链接后,b.libB的代码却没有链入a.libA中。 rn为什么?[/color]rnrn我遇到完全同样的问题,遗憾的是,这个问题没有被完美解决。而且原始贴子由于时间久远,已经不能跟贴。rnrn于是我又把问题再次提出来,请教各位。rnrn
静态库链接静态库?????????
有一个静态库工程,我添加了另一个静态库B到此工程中,编译链接后,形成的结果静态库A却没有包含B的接口函数,用测试程序测试时,链接出错.rnrn如果我现在的测试程序带上a.lib和b.lib,就可运行通过;rn如果只带上a.lib,出现链接错误,说找不到b.lib里的函数,这说明a.lib没有rn包含b.lib的代码。rnrnb.lib当然有一个xx.h文件是表示B的输出函数,rnA的工程要调用B里的函数,当然要#include "xx.h", xx.h当然要在A的工程目录rn下,b.lib也在A的工程目录下,这样编译链接后,b.libB的代码却没有链入a.libA中。rn为什么?
链接静态库
有个工程分为4个模块,每个模块都生成一个静态库.a后缀。问:怎么样把这四个静态库用ar连起来生成一个.a静态库rn谢谢指点
静态库链接
嵌入式指纹采集管理rn硬件有一ARM嵌入式板子rn一个zfm-20指纹采集模块rn想在linux系统下编写程序烧到嵌入式板子上rn调用指纹模块提供的函数,从而实现对指纹的rn采集识别删除等功能rn目前有自己编写的原函数zhiwen.c和厂家提供的rnSYFinger.a的静态库,应该怎么编译呢,rn自己编译了一下老说找不到库函数rn
静态库链接不上,是怎么回事呢?
在Linux下 编译一个NCL 的C程序需要链接libnetcdf.a的一个静态库,它放在/usr/local/lib下,rn编译时使用命令nhlcc -o test test.c -l/usr/local/lib/libnetcdf.a (NCL 自带命令)rnrn即gcc -DSYSV -D_POSIX_SOURCE -D_XOPEN_SOURCE -DByteSwapped -D__UNIXOS2__ -DNeedFuncProto -ansi -fPIC -O0 -o cn14c cn14c.c -l/usr/local/lib/libnetcdf.a -L/usr/local/lib -I/usr/local/include -lhlu -lncarg -lncarg_gks -lncarg_c -lX11 -lXext -lgfortran -lmrnrn但是报错rn/usr/bin/ld: cannot find -l/usr/local/lib/libnetcdf.arn我查看了/ect/ld.so.conf.d/lic.conf文件中默认路径为/usr/local/lib 没有错啊,请问为什么还链不进去呢?rn求高手指点!rnrn
动态库无法链接静态库
1、gcc和ld版本如下:rnlixiangtao@ubuntu:~/kiwi_voice/src/tonlyapps/libffmpegplayer$ ld --versionrnGNU ld (GNU Binutils for Ubuntu) 2.26.1rnCopyright (C) 2015 Free Software Foundation, Inc.rnThis program is free software; you may redistribute it under the terms ofrnthe GNU General Public License version 3 or (at your option) a later version.rnThis program has absolutely no warranty.rnlixiangtao@ubuntu:~/kiwi_voice/src/tonlyapps/libffmpegplayer$ gcc --versionrngcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609rnCopyright (C) 2015 Free Software Foundation, Inc.rnThis is free software; see the source for copying conditions. There is NOrnwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.rnrn2、问题:无法成功链接静态库:rn(1)原始makefile片段:rnlibrender_audio_plugin: TARGET := librender_audio_plugin.sornlibrender_audio_plugin: $(OBJS-RENDER-AUDIO)rn $(warning suh25ssssssssssssssssssssssssssssss $(LD) ssssssssssssssssssssssssss)rn $(LD) -o $(TARGET) $(OBJS-RENDER-AUDIO) $(LDFLAGS) $(LIBS) -O2 \rn -lc $(LIBGCC);rn $(RM) $(BINDIR)output/plugins/$(TARGET)rn install -m 777 $(TARGET) $(BINDIR)output/pluginsrn(2)增加链接静态库后的makefile片段:rnlibrender_audio_plugin: TARGET := librender_audio_plugin.sornlibrender_audio_plugin: $(OBJS-RENDER-AUDIO)rn $(warning suh25ssssssssssssssssssssssssssssss $(LD) ssssssssssssssssssssssssss)rn $(LD) -o $(TARGET) $(OBJS-RENDER-AUDIO) $(LDFLAGS) $(LIBS) -ltl_playermanager -lavformat -lavcodec -lavutil -O2 \rn -lc $(LIBGCC);rn $(RM) $(BINDIR)output/plugins/$(TARGET)rn install -m 777 $(TARGET) $(BINDIR)output/pluginsrn在链接时增加了4个静态库-ltl_playermanager -lavformat -lavcodec -lavutil ,无论这4个静态库是否存在,编译都不会报错,生成的动态库大小也不会变化。rn3、编译过程如下:rnMakefile:427: suh25ssssssssssssssssssssssssssssss /home/lixiangtao/kiwi_voice/src/tonlyapps/libffmpegplayer/libmedia/../../../../build/tmp/sysroots/x86_64-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ld -shared ssssssssssssssssssssssssssrn/home/lixiangtao/kiwi_voice/src/tonlyapps/libffmpegplayer/libmedia/../../../../build/tmp/sysroots/x86_64-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-ld -shared -o librender_audio_plugin.so component/render/alsa.o component/render/format.o component/render/chmixer.o component/render/iis_driver.o component/render/snd_driver.o -L../output/bin -L../output/lib --hash-style=gnu -lpthread -lm -ldl -lmad -lfaad -ltremor -lflac -logg -lgpg-error -lgcrypt -lmedia -lasound -ltl_playermanager -lavformat -lavcodec -lavutil -O2 \rn-lc /home/lixiangtao/kiwi_voice/src/tonlyapps/libffmpegplayer/libmedia/../../../../build/tmp/sysroots/x86_64-linux/usr/bin/aarch64-poky-linux/../../../../aud8516-slc-tcbootstrap/usr/lib64/aarch64-poky-linux/6.2.0/libgcc.a;rnrm -f ../output/plugins/librender_audio_plugin.sorninstall -m 777 librender_audio_plugin.so ../output/pluginsrnrn搞了好几天了,毫无进展,求大神帮忙。rnrn跪谢!
CURL 链接静态库
转载来源: http://blog.csdn.net/baidu_19348579/article/details/56479977  今天准备写个简单的http页面访问程序,以前在vc2005下用过就把代码搬过来了 因为我现在改用了vc2008因此需要重新编译lib 以前用命令行nmake编译成dll,今天偷懒直接进入lib目录用vc2008打开vc6libcurl
动态库链接boost静态库
为了避免项目布署麻烦,需要将执行文件尽量静态链接 1. boost库全部静态链接 2. c++库静态链接 1,2点的改变如下,强制链静态库的方法为参数下为-l:libXXXX.a; 对于boost log, 需要将宏-DBOOST_LOG_DYN_LINK去掉 LOCAL_STATICLIBS := boost_log boost_log_setup boost_system boost...
链接opencv静态库(源码)
这几天折腾了好久,想将工程代码直接和源码编译,当时试了很多方法: 直接将工程代码添加到OpenCV源码的模块,想通过这样的方法来链接源码,此时会报错:无法访问原OpenCV的一些私有头文件,比如"cuda.h".后来尝试在OpenCV中直接添加Cmake的语句进行链接源文件,编译成.so,这事编译过了,却使用出问题,出现函数未定义。分析可能的原因是:编译时未将所有的OpenCV的.cpp添加
静态库创建与链接
1、静态库的创建 (1)编写源文件 (2)g++-c xxx.cpp编译生成 目标文件 (3)使用ar命令将目标文件归档生成静态库 ar -crv libfile_operation.a file_operation.o 选项说明: c 如果需要生成新的库文件,不要警告 ...
静态库链接问题?
请问把静态库和OBJ链接成可执行文件时,是把整个LIB链接进去还是只链接OBJ中用到的LIB中的函数?
libparted静态库无法链接
在下使用parted-1.7.1的静态库,配置语句如下:rn./configure --host=arm-hismall-linux CC=arm-hismall-linux-gcc --prefix=/opt/hisi-linux/x86-arm/gcc-3.4.3-uClibc-0.9.28/arm-hisi-linux --disable-device-mapper --without-readline --disable-shared --disable-dynamic-loadingrnmake编译得到libparted.a静态库,但是使用的时候总是提示没有其中的函数,我nm了一下,发现函数符号链接都在里面啊,为何总是报undefined的错,include路径都已指明了的,rnarm-hismall-linux-gcc -Wall -static -I /home/cc/parted-1.7.1/include/ -L/home/cc/parted-1.7.1/libparted/.libs -lparted test.c -o trnrn请高手指点,困扰了好几天了
静态库链接问题
小弟现在在学习live555这个RTSP的库,在使用中遇到一些麻烦,请大家帮帮忙。rnrn单独编译 live555 能够编译成功,并且成功的链接各个静态库 (.a)。但是我把sample里面的代码加入到我自己的程序中时,能够将各个部分的代码编译出来,但是到最后一步链接的时候就提示:rnrnlibBasicUsageEnvironment.a(BasicUsageEnvironment.o):(.rodata._ZTV21BasicUsageEnvironment[vtable for BasicUsageEnvironment]+0x24): undefined reference to `UsageEnvironment::internalError()'rnlibBasicUsageEnvironment.a(BasicTaskScheduler.o):(.rodata._ZTV18BasicTaskScheduler[vtable for BasicTaskScheduler]+0x18): undefined reference to `TaskScheduler::rescheduleDelayedTask(void*&, long long, void (*)(void*), void*)'rnlibBasicUsageEnvironment.a(BasicTaskScheduler.o):(.rodata._ZTV18BasicTaskScheduler[vtable for BasicTaskScheduler]+0x34): undefined reference to `TaskScheduler::internalError()'rnlibBasicUsageEnvironment.a(BasicUsageEnvironment0.o): In function `BasicUsageEnvironment0::BasicUsageEnvironment0(TaskScheduler&)':rnBasicUsageEnvironment0.cpp:(.text+0x2a5): undefined reference to `UsageEnvironment::UsageEnvironment(TaskScheduler&)'rnlibBasicUsageEnvironment.a(BasicUsageEnvironment0.o): In function `BasicUsageEnvironment0::~BasicUsageEnvironment0()':rnBasicUsageEnvironment0.cpp:(.text+0x261): undefined reference to `UsageEnvironment::~UsageEnvironment()'rnlibBasicUsageEnvironment.a(BasicUsageEnvironment0.o):(.rodata._ZTV22BasicUsageEnvironment0[vtable for BasicUsageEnvironment0]+0x24): undefined reference to `UsageEnvironment::internalError()'rnlibBasicUsageEnvironment.a(BasicUsageEnvironment0.o):(.rodata._ZTI22BasicUsageEnvironment0[typeinfo for BasicUsageEnvironment0]+0x8): undefined reference to `typeinfo for UsageEnvironment'rnlibBasicUsageEnvironment.a(BasicTaskScheduler0.o): In function `BasicTaskScheduler0::~BasicTaskScheduler0()':rnBasicTaskScheduler0.cpp:(.text+0x641): undefined reference to `TaskScheduler::~TaskScheduler()'rnlibBasicUsageEnvironment.a(BasicTaskScheduler0.o): In function `BasicTaskScheduler0::BasicTaskScheduler0()':rnBasicTaskScheduler0.cpp:(.text+0x693): undefined reference to `TaskScheduler::TaskScheduler()'rnBasicTaskScheduler0.cpp:(.text+0x729): undefined reference to `TaskScheduler::~TaskScheduler()'rnlibBasicUsageEnvironment.a(BasicTaskScheduler0.o): In function `BasicTaskScheduler0::~BasicTaskScheduler0()':rnBasicTaskScheduler0.cpp:(.text+0x62c): undefined reference to `TaskScheduler::~TaskScheduler()'rnlibBasicUsageEnvironment.a(BasicTaskScheduler0.o):(.rodata._ZTV19BasicTaskScheduler0[vtable for BasicTaskScheduler0]+0x18): undefined reference to `TaskScheduler::rescheduleDelayedTask(void*&, long long, void (*)(void*), void*)'rnlibBasicUsageEnvironment.a(BasicTaskScheduler0.o):(.rodata._ZTV19BasicTaskScheduler0[vtable for BasicTaskScheduler0]+0x34): undefined reference to `TaskScheduler::internalError()'rnlibBasicUsageEnvironment.a(BasicTaskScheduler0.o):(.rodata._ZTI19BasicTaskScheduler0[typeinfo for BasicTaskScheduler0]+0x8): undefined reference to `typeinfo for TaskScheduler'rnlibgroupsock.a(NetAddress.o): In function `AddressPortLookupTable::Iterator::Iterator(AddressPortLookupTable&)':rnNetAddress.cpp:(.text+0x5ba): undefined reference to `HashTable::Iterator::create(HashTable const&)'rnlibgroupsock.a(NetAddress.o): In function `AddressPortLookupTable::AddressPortLookupTable()':rnNetAddress.cpp:(.text+0x5e8): undefined reference to `HashTable::create(int)'rnlibliveMedia.a(Media.o): In function `MediaLookupTable::MediaLookupTable(UsageEnvironment&)':rnMedia.cpp:(.text+0x22e): undefined reference to `HashTable::create(int)'rnlibliveMedia.a(RTSPServer.o): In function `UserAuthenticationDatabase::addUserRecord(char const*, char const*)':rnRTSPServer.cpp:(.text+0x2b4): undefined reference to `strDup(char const*)'rnlibliveMedia.a(RTSPServer.o): In function `UserAuthenticationDatabase::~UserAuthenticationDatabase()':rnRTSPServer.cpp:(.text+0x327): undefined reference to `HashTable::RemoveNext()'rnlibliveMedia.a(RTSPServer.o): In function `UserAuthenticationDatabase::UserAuthenticationDatabase(char const*, unsigned char)':rnRTSPServer.cpp:(.text+0x396): undefined reference to `HashTable::create(int)'rnRTSPServer.cpp:(.text+0x3ab): undefined reference to `strDup(char const*)'rnlibliveMedia.a(RTSPServer.o): In function `RTSPServer::ServerMediaSessionIterator::ServerMediaSessionIterator(RTSPServer&)':rnRTSPServer.cpp:(.text+0x3f0): undefined reference to `HashTable::Iterator::create(HashTable const&)'rnlibliveMedia.a(RTSPServer.o): In function `RTSPServer::RTSPClientSession::handleHTTPCmd_TunnelingGET(char const*)':rnRTSPServer.cpp:(.text+0x460): undefined reference to `HashTable::create(int)'rnlibliveMedia.a(RTSPServer.o): In function `RTSPServer::RTSPClientSession::authenticationOK(char const*, char const*, char const*, char const*)':rnRTSPServer.cpp:(.text+0x954): undefined reference to `strDupSize(char const*)'rnRTSPServer.cpp:(.text+0x95f): undefined reference to `strDupSize(char const*)'rnRTSPServer.cpp:(.text+0xb87): undefined reference to `strDup(char const*)'rnRTSPServer.cpp:(.text+0xb97): undefined reference to `strDup(char const*)'rnRTSPServer.cpp:(.text+0xbe7): undefined reference to `strDup(char const*)'rnRTSPServer.cpp:(.text+0xbff): undefined reference to `strDup(char const*)'rnRTSPServer.cpp:(.text+0xc12): undefined reference to `strDup(char const*)'rnlibliveMedia.a(RTSPServer.o): In function `RTSPServer::RTSPClientSession::handleCmd_SETUP(char const*, char const*, char const*, char const*)':rnRTSPServer.cpp:(.text+0x16c0): undefined reference to `SendingInterfaceAddr'rnRTSPServer.cpp:(.text+0x16c6): undefined reference to `ReceivingInterfaceAddr'rnRTSPServer.cpp:(.text+0x179a): undefined reference to `ReceivingInterfaceAddr'rnRTSPServer.cpp:(.text+0x17a3): undefined reference to `SendingInterfaceAddr'rnRTSPServer.cpp:(.text+0x1a67): undefined reference to `strDupSize(char const*)'rnRTSPServer.cpp:(.text+0x1beb): undefined reference to `strDup(char const*)'rnRTSPServer.cpp:(.text+0x1c0a): undefined reference to `strDup(char const*)'rnlibliveMedia.a(RTSPServer.o): In function `RTSPServer::RTSPClientSession::incomingRequestHandler1()':rnRTSPServer.cpp:(.text+0x2a1a): undefined reference to `readSocket(UsageEnvironment&, int, unsigned char*, unsigned int, sockaddr_in&)'rnlibliveMedia.a(RTSPServer.o): In function `RTSPServer::incomingConnectionHandler(int)':rnRTSPServer.cpp:(.text+0x2c25): undefined reference to `makeSocketNonBlocking(int)'rnRTSPServer.cpp:(.text+0x2c3c): undefined reference to `increaseSendBufferTo(UsageEnvironment&, int, unsigned int)'rnlibliveMedia.a(RTSPServer.o): In function `RTSPServer::RTSPServer(UsageEnvironment&, int, Port, UserAuthenticationDatabase*, unsigned int)':rnRTSPServer.cpp:(.text+0x2d8a): undefined reference to `HashTable::create(int)'rnlibliveMedia.a(RTSPServer.o): In function `RTSPServer::setUpOurSocket(UsageEnvironment&, Port&)':rnRTSPServer.cpp:(.text+0x2e00): undefined reference to `NoReuse::NoReuse(UsageEnvironment&)'rnRTSPServer.cpp:(.text+0x2e18): undefined reference to `setupStreamSocket(UsageEnvironment&, Port, unsigned char)'rnRTSPServer.cpp:(.text+0x2e36): undefined reference to `increaseSendBufferTo(UsageEnvironment&, int, unsigned int)'rnRTSPServer.cpp:(.text+0x2e64): undefined reference to `getSourcePort(UsageEnvironment&, int, Port&)'rnRTSPServer.cpp:(.text+0x2e73): undefined reference to `NoReuse::~NoReuse()'rnRTSPServer.cpp:(.text+0x2ea7): undefined reference to `NoReuse::~NoReuse()'rnRTSPServer.cpp:(.text+0x2ec7): undefined reference to `NoReuse::~NoReuse()'rnRTSPServer.cpp:(.text+0x2edb): undefined reference to `NoReuse::~NoReuse()'rnrnrn现在小弟就很疑惑,这其中我没有做任何的改变,为何单独在sample中就能编译链接成功,而在自己的代码中编译好了,但是就不能链接成功。
链接 / 静态库 / 共享库
静态库 .a将库文件拷贝,嵌入可执行文件中。 缺点: 当静态库更新的时候,如果想使用新版本的库,必须重新链接。共享库 .so .dll动态连接器执行动态链接。
静态库的编译和链接
静态库调用在外部文件中定义的函数:即在静态库中声明并调用函数,但是在外部文件中实现该函数。 在编译成静态库时,源文件中可以只提供函数声明,具体的实现交给调用该静态库的人去做。   假设有a.c和b.c,a.c中声明并调用了fun1(),但是在b.c中实现fun1()。 a.c #include <stdio.h> extern void fun1(void); int a...
静态库链接的问题
我有两个库Foo和Bar,都是静态库。Bar用了Foo中的一些函数。那么在创建Bar的时候,我应当把Foo链接进去吗?
linux 链接静态库
我的程序要链接一些静态库,这些静态库也是我自己写的。rng++ -o program a.o b.o -L../lib -lutil -lfoornrn其中libfoo.a里一些函数在libutil.a中。rn然后编译的时候出报在libfoo.a中没有定义***函数。如下rnundefined reference to `update::CSegmentReader::getSegmentInfo()'rnrn但是我把libfoo.a和libutil.a用ar -x解压,再用ar cru打成一个包libcore.arnrn再用g++ -o program a.o b.o -L../lib -lcore就可以了。‘rnrn真是不明白为什么呀!rnrn而且我写了一个非常简单的例子,测试了一下rng++ -o program a.o b.o -L../lib -lutil -lfoo这种写法,应该是没问题的。
openssl静态库链接问题
libeay32.lib(ui_lib.obj) : error LNK2001: unresolved external symbol ___security_cookiernlibeay32.lib(ui_openssl.obj) : error LNK2001: unresolved external symbol ___security_cookiernlibeay32.lib(t_x509a.obj) : error LNK2001: unresolved external symbol ___security_cookiern总共有一百多条rn很显然libeay32.lib是静态库链接,因为大小有11M,请问怎么解决这种错误?rnrn
C++静态库链接的问题
问题是在这样的rn我共有3个工程,一个DLL工程,一个静态lib工程,还有一个exe工程rnrn问题出现在静态库这块rnrn由于静态库是需要引用DLL工程的一些头文件,rn其中有一个静态库的CPP引用了DLL工程的一些函数,而这些函数刚好又都是不在.h文件里实现的,不是inlinernrn这样静态库编译通过,也生成了lib(好像静态库不会链接,到了exe生成时才去链接它所使用的库,不知我的对否?)rnrnexe这块引用了该静态库,编译通过,但是出现了链接错误,就是静态库CPP引用DLL工程的那些在头文件里实现的函数rnrn我是这么想的,因为静态本身不会链接,在编译该cpp时没有链接上该函数,到了exe生成时就需要该函数了,但是又发现没有引用过该头文件,因为头文件是在CPP中inlcude的,这样造成了链接不通过,不知道我的想的对不对rnrn有谁知道怎么解决的告诉一下,在此感谢了!!!!rnrn另:我用的是vs2005 sp1 C++
动态库静态库链接运行测试
http://blog.csdn.net/u011011827/article/details/53966311 参考
Linux Cmake静态库链接
静态库和动态库使用的区别:其中.a文件是静态链接库文件,静态库名称一般为xxx.a,在编译时和应用程序链接在一起,这样的应用程序占用空间较大,但是可以在任意台电脑上使用,而不必担心电脑上是否有库的存在。 .so是动态库链接文件 动态库名称一般为xxx.so,对于动态库即可以在编译时链接,也可以使用dlopen()/dlsym()/dlclose()函数在运行时调用,后种方式占用空间较小,且可以实
关于静态库和动态库的链接
static1.cpp #include void f() { printf("static1::f()\n"); }static2.cpp #include void f() { printf("static2::f()\n"); }main.cpp #include extern void f(); int main() { f(); return 0;
静态链接之与静态库的链接
1. 静态库 链接器读取一组可重定位目标文件,并把它们组合称为一个单一的可执行文件。可以通过将所有相关的可重定位目标文件打包成为一个单独的文件,这个文件就叫做静态库。在链接时,链接器只拷贝被程序引用的目标模块。减少了可执行文件在磁盘和存储器中的大小。 Unix系统中,静态库以一种称为存档的特殊文件格式存放在磁盘。例如在ubuntu上,在路径/usr/lib/x86_64-linux-gnu/l
cocos2dx静态库链接识别
今天在调试cocos2dx的extensions库时总是报错: cocos2d-2.1beta3-x-2.1.0/extensions/proj.blackberry/Simulator/../../GUI/CCScrollView/CCScrollView.cpp:298: undefined reference to `cocos2d::CCActionTween::create(floa...
链接静态库的时候无法打开静态库
编写了一个动态库, 很一个函数rn[code=C/C++]rn#include rn__declspec(dllexport) int MsgBox(const char *lpText,const char *lpTitle)rnrn MessageBoxA(NULL,lpText,lpTitle,MB_OK);rnrn return (0);rnrn[/code]rn编译生成dll1.dll和dll1.lib。rn测试的时候就写了一个main函数rn[code=C/C++]rn#include rnrn#pragma comment(lib,"dll1.lib")rnrnint main()rnrn return 0;rnrn[/code]rnrn编译的时候提示打不开dll1.librnrn1>------ 已启动生成: 项目: test, 配置: Debug Win32 ------rn1>正在编译...rn1>main.cpprn1>正在链接...rn1>LINK : fatal error LNK1104: 无法打开文件“dll1.lib”rn1>生成日志保存在“file://d:\vs2008 app\Ain\test\Debug\BuildLog.htm”rn1>test - 1 个错误,0 个警告rn========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========rnrnrnrn请问哪位也遇见过这种问题?
请问静态库不能链接静态库么??
我有两个静态库,A和B,A会使用B这个静态库,rn然后,我应用层只需要A这个静态库,rn那能让A链接B么? 就是我想让应用层只链接A,rn做做到么?
请问静态库(lib)如何链接其他静态库?
VS2005中,创建一个lib工程,工程属性里没有Linker项!rn而工程中要用到其他的lib,怎么解决?rnrn谢谢了!
请问C#里面能调静态库吗?
现在只有.h和.lib文件,没有.DLL文件rn怎么在C#里面调用呢?rn只是调试,.DLL还没有完成。rnC#调.DLL我是会的rn谢谢!
C#链接mysql链接不上
public static string connectionString = "Data Source=127.0.0.1; Initial Catalog=userdb; User ID=root; Password=123456; Max Pool Size=75; Min Pool Size=5; MultipleActiveResultSets=true";rnrnrnrn public IQueryable FindAll()rn rn rn DataContext db = new DataContext(sqlConns);rn rn IQueryable users = db.GetTable();rn return users;rn rn [img=https://img-bbs.csdn.net/upload/201403/06/1394083386_702623.png][/img]rnrnrn提示错误为:rn在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接)[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/1.gif][/img]求解求解
编译时连接与运行时链接及静态库链接
编译时连接与运行时链接的参考路径//动态库编译时链接 -L /lib /usr/lib /usr/local/lib 编译时链接的话,能查到libname.so 且这个文件要不是个link,要不就是实际的动态库文件,否则会报错 说链接顺序没有意义,因为并不链接到文件里面去//动态库运行时链接 1. 编译目标代码时指定的动态库搜索路径;-Wl,-rpath, 2. 环境变量 LD_LIBRARY_
动态库链接 变为 静态库链接问题
最近做了一个新的项目,遇到了棘手的问题:rn 项目最先是用的库是动态的,动态链接的时候很正常。现在要链接静态的库,不幸的是出现了一大串错误(很多的库函数找不到了。)rn undefined reference to …… rnrn反正 就是一大串的这个…… rn rn请高手指点一下!
程序链接静态库,静态库再链接另一个静态库,出现未定义的问题?
假设生成了两个静态库liba.a和libb.a,这两个静态库中a静态库调用了b静态库里面的函数,之后用这两个静态库生成一个程序的时候,头文件都包含了,库都连接了,但是出现了b静态库中某些函数未定义的问题,造成无法生成可执行文件。 这个是编译器再链接静态库时是一个调用一个,顺序不是我们理解的先-lb再-la,而是先-la再-lb,这个顺序只要对了,就可以编译通过。另外a静态库需要包含b静态库的头文
动态库、静态库编译测试:含静态库链接动态库、静态库,动态库链接静态库、动态库
本文的目的是测试各种类型库的编译后的使用效果,包括库又链接其他库的编译方法,使用方法,依赖性等。 太长不看版:请跳至文章最后的总结对比表。 一。内容包含: ①静态库libbb.a依赖静态库libaa.a的测试; ②静态库libbb.a依赖动态库libaa.so的测试; ③动态库libbb.so依赖静态库libaa.a的测试; ④动态库libbb.so依赖动态库libaa.so的测试; ...
ld链接动态库静态库问题
在使用redis写C代码的时候遇到的问题,安装redis时 make install可以看到: mkdir -p/usr/local/include/hiredis /usr/local/lib cp -a hiredis.h async.h read.h sds.h adapters/usr/local/include/hiredis cp -a libhiredis.so/usr/loc
linux下g++ 静态库的链接问题
现有目录src以及它下面a b c d四个子目录,src下面有test.cpp; a,b,c,d分别对应一个模块rnrn将各个子目录编译成四个静态库:liba.a libb.a libc.a libd.arnrn其中b中用到a里的函数接口,d用到b和a中的接口,c用到d中接口(假设没有相互间的依赖)rnrn四个子目录编译完后都生成了各自的*.a文件rnrn这时需将四个库加入到test.cpp编译过程中以生成可执行文件rnrn其中几个库会提示相互需要的函数接口找不到rnrn将库生成的顺序调整为 liba.a libb.a libd.a libc.a也是不行。rnrn请问原因是什么?rnrn如何避免“ undefined reference to....”这样的问题?rnrnPS:如果改用动态库的话不存在这样的问题。
链接静态库生存动态库的优化
如题,一个庞大的静态库libstatic.a,可能包含有几千个可用符号。在api.c中有xxapi函数,其调用了libstatic.a中的yyapi,而yyapi的实现可能又使用了libstatic.a中其它若干符号(函数、全局变量)。现在我将api.c与libstatic.a编译链接生成动态库libshard.so,但libshared.so好像包含了libstatic.a中所有符号,大部分是我不需要的,使得libshared.so文件很大(跟libstatic.a相当)。rn问:有没有比较快捷的方法,从libstatic.a中只抽出所需的符号链接到libshared.so中?
linux 如何优先链接静态库
标准路径下既有静态库又有动态库,LDFLAGS如何写才会使用静态库?
gcc使用---动态库链接静态库
最近自己的项目中遇到一个问题: 编译一个动态库,动态库中使用了静态库的函数如下图所述
同时链接不同版本静态库的问题分析
在一个项目中,模块A链接了 poco 的1.6.1版本静态库。 解析json抛异常,但是独立的 demo 中却正常。 排查发现,项目中的其他模块集成了poco 1.5的版本静态库。 通过poco的文档发现,json在1.5的版本中确实存在bug,而在1.6的版本中修复了此bug。 问题就是:明明是静态链接,为什么还会互相影响?并且实际链接的是哪个版本? 于是写了个demo模拟调用不同版本...
Ubuntu链接静态库,蛋疼。。
Enviroment:Ubuntu 12.04rn Tools:gcc GNUmakernrnUbuntu有个问题!!!rnrn在链接静态库的时候:rnrncc -Isrc build/liblcthw.a tests/list_tests.c -o tests/list_tests 编译通不过,提示找不到函数定义rncc -Isrc tests/list_tests.c -o tests/list_tests build/liblcthw.a 就行了,库文件的位置一定要放在目标文件的后面rnrn我想改Makefile,貌似不会。。rntests: CFLAGS += $(TARGET) #TARGET=liblcthw.arntests: $(TESTS) #TEST=单元测试的程序文件名rn sh ./tests/runtests.shrnrn这样子的Makefile肯定会把-o XXX放在命令的最后面。rnrn怎么写Makefile才行,求大神指教??
相关热词 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd c# 操作sql视图