Solaris 10 上MySQL的安装及配置
2010-04-10 19:08
357 查看
最近在用WinGW(GCC的WINDOWS版本)调试跨平台的C/C++程序,在链接程序的过程中,两次写错了链接的文件,一次是将.a的后缀误写为.lib,第二次是将.a的后缀误写为.dll,当时没发现,等到一天的工作结束了,躺在床上才想起这个问题。
为什么啊?链接的文件都写错了,链接应该不能通过的,为什么调试一天的程序都一切正常呢?难道MinGW可以与LIB文件和DLL文件直接链接?
于是今天专门做了测试。令人欣喜,的确是这样的:MinGW在链接的时候,可以与.LIB文件链接,也可以与DLL文件链接。
下面是我写的pthread链接的测试程序:
//main.cpp
编译的命令如下:
g++ -o main.o -c main.cpp -g -Wall -I"e:\pthread_wiin32\include"
下面使用GCC的.a格式的文件进行链接:
g++ -o main.exe main.o "e:\pthread_win32\lib\libpthreadGC2.a"
以上的链接办法当然能链接通过。
下面尝试和windows特有的.lib格式的文件进行链接:
g++ -o main.exe main.o "e:\pthread_win32\lib\pthreadVC2.lib"
欣喜若狂,泪流满面————链接通过了。执行程序,一切正常!!!
下面再试和DLL链接:
g++ -o main.exe main.o "e:\pthread_win32\lib\pthreadVC2.dll"
又链接通过,又执行正常!!!高兴得都不知道说啥好了!!!
MinGW真是超牛啊!内部应该提供了从lib文件和从dll文件获得类型信息的功能!!!由此看来,GCC链接obj文件应该也是可以的。
不过,总还是有些遗憾。不是为MinGW遗憾,为微软而遗憾:我使用VC8.0(VS2005)编译的obj和LIB文件无法被MinGW链接,能够被MinGW链接的lib文件应该是由版本较早的VC编译器生成的。可惜,我电脑里面没装VC6,没办法测试。有兴趣的朋友如果测试了,希望能告知我结果。
伟大的开源社区,令人欣喜的GCC,如此兼容并包的功能实在让我们感动。恶心的微软,随着新版的编译器的退出,他们一定修改了obj和lib文件的原有格式,使得GCC无法获得类型信息,如此的小见如此的自私。
以前在WINDOWS下写OCI和PROC的程序,发现ORACLE的库中没有提供.a格式的链接文件,于是暗暗把ORACLE骂了一顿。而今,发现MinGW可以和lib格式的库链接,姑且就原谅ORACLE了。
呵呵,GCC让我的心情如此振奋,中午要多吃一碗饭!
为什么啊?链接的文件都写错了,链接应该不能通过的,为什么调试一天的程序都一切正常呢?难道MinGW可以与LIB文件和DLL文件直接链接?
于是今天专门做了测试。令人欣喜,的确是这样的:MinGW在链接的时候,可以与.LIB文件链接,也可以与DLL文件链接。
下面是我写的pthread链接的测试程序:
//main.cpp
#include <stdio.h> #include <pthread.h> void* _thread_t(void* param) { printf("thread_ok\n"); return NULL; } int main() { pthread_t tid; pthread_create(&tid, NULL, _thread_t, NULL); pthread_join(tid, NULL); getchar(); return 1; } |
g++ -o main.o -c main.cpp -g -Wall -I"e:\pthread_wiin32\include"
下面使用GCC的.a格式的文件进行链接:
g++ -o main.exe main.o "e:\pthread_win32\lib\libpthreadGC2.a"
以上的链接办法当然能链接通过。
下面尝试和windows特有的.lib格式的文件进行链接:
g++ -o main.exe main.o "e:\pthread_win32\lib\pthreadVC2.lib"
欣喜若狂,泪流满面————链接通过了。执行程序,一切正常!!!
下面再试和DLL链接:
g++ -o main.exe main.o "e:\pthread_win32\lib\pthreadVC2.dll"
又链接通过,又执行正常!!!高兴得都不知道说啥好了!!!
MinGW真是超牛啊!内部应该提供了从lib文件和从dll文件获得类型信息的功能!!!由此看来,GCC链接obj文件应该也是可以的。
不过,总还是有些遗憾。不是为MinGW遗憾,为微软而遗憾:我使用VC8.0(VS2005)编译的obj和LIB文件无法被MinGW链接,能够被MinGW链接的lib文件应该是由版本较早的VC编译器生成的。可惜,我电脑里面没装VC6,没办法测试。有兴趣的朋友如果测试了,希望能告知我结果。
伟大的开源社区,令人欣喜的GCC,如此兼容并包的功能实在让我们感动。恶心的微软,随着新版的编译器的退出,他们一定修改了obj和lib文件的原有格式,使得GCC无法获得类型信息,如此的小见如此的自私。
以前在WINDOWS下写OCI和PROC的程序,发现ORACLE的库中没有提供.a格式的链接文件,于是暗暗把ORACLE骂了一顿。而今,发现MinGW可以和lib格式的库链接,姑且就原谅ORACLE了。
呵呵,GCC让我的心情如此振奋,中午要多吃一碗饭!
相关文章推荐
- Suse Linux 10 MySql安装与配置
- solaris 10安装配置
- mysql 5.7.13 winx64 ,Win 10安装配置方法图文教程
- solaris 10安装配置
- Suse Linux 10 MySql安装与配置
- Windows 10安装MySQL配置时无响应解决方法
- Solaris10+PHP5+MySQL详细配置
- 【Linux】Solaris10下安装后Oracle11g的环境变量配置,实现oracle用户下支持sqlplus,lsnrctl等命令
- solaris 10 安装Apache Mysql PHP
- Suse Linux 10中MySql安装与配置步骤
- solaris 10 安装Apache Mysql PHP
- mysql 5.7在win 10 下的安装及配置
- solaris 10配置JAVA环境以及安装firefox
- [转]Solaris10从下载、安装到基本配置过程
- Suse Linux 10 MySql安装与配置
- windows 10下解压版MySql安装配置方法教程
- Solaris 10上安装MySQL的方法
- ubuntu下安装MyEclipse10和MySql,为MyEclipse配置android ADT(全程截图)