#include
#include
#include
#include
#include
#include
#include
class MyTest : public CppUnit::TestCase
{
CPPUNIT_TEST_SUITE(MyTest);
CPPUNIT_TEST(testHelloWorld);
CPPUNIT_TEST_SUITE_END();
public:
void setUp(void) {}
void tearDown(void) {}
protected:
void testHelloWorld(void) { std::cout << "Hello, world!" << std::endl; }
};
CPPUNIT_TEST_SUITE_REGISTRATION(MyTest);
int main( int ac, char **av )
{
//--- Create the event manager and test controller
CppUnit::TestResult controller;
//--- Add a listener that colllects test result
CppUnit::TestResultCollector result;
controller.addListener( &result );
//--- Add a listener that print dots as test run.
CppUnit::BriefTestProgressListener progress;
controller.addListener( &progress );
//--- Add the top suite to the test runner
CppUnit::TestRunner runner;
runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );
runner.run( controller );
return result.wasSuccessful() ? 0 : 1;
}
[/code]程序使用 g++ -L/usr/local/lib/ mytest.cpp -lcppunit -ldl -o mytest 进行编译,我们能看出来 -lcppunit -ldl 这两个库是动态库还是静态库吗?
如果 /usr/local/lib/ 文件夹下同时有动态库和静态库时怎么办??
vfdff 于 2010-08-21 01:34:03发表:
2# gsm1011
尝试使用
$ gcc -c func.c -o func.o
$ ar rcs libfunc.a func.o生成的静态库libfunc.a
使用命令
> ldd -r libfunc.a 提示:
ldd: warning: you do not have execution permission for `./libfunc.a'
not a dynamic executable
说明这个ldd只能分析动态库吧?
另外,其实也可以使用readelf命令查看库文件类型的
vfdff 于 2010-08-21 01:31:18发表:
【2】生成动态库:
$ gcc -fPIC -c func.c -o func.o
$ gcc -shared -o libfunc.so.1.0.0 func.o
$ ln -s libfunc.so.1.0.0 libfunc.so
$ gcc main.c -o main -L. -lfunc
$ export LD_LIBRARY_PATH=$(pwd)
$ ./main
红色部分是不是可以不要的??
haoxingfeng 于 2010-08-18 11:43:23发表:
very good ,thanks
vfdff 于 2010-08-11 01:25:48发表:
ldd命令 用于判断某个可执行的binary 档案含有什么动态函式库
gsm1011 于 2010-07-14 01:03:43发表:
用ldd命令查看试试。