1、編譯命令: g++ -o dome.so -shared -fPIC dome.cpp,如果成功則會在當(dāng)前目錄下生成一個dome.so的文件。
成都創(chuàng)新互聯(lián)公司服務(wù)項目包括澤庫網(wǎng)站建設(shè)、澤庫網(wǎng)站制作、澤庫網(wǎng)頁制作以及澤庫網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,澤庫網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到澤庫省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
2、splitpath_s在此作用域中尚未聲明這個函數(shù)需要的頭文件是:stdlib.h,這個函數(shù)是 用來獲取程序的路徑,并對路徑進(jìn)行分解的。
3、在windows上編譯時沒有任何問題,但是到了centos上就出現(xiàn)了_splitpath_s在此作用域中尚未聲明的錯誤提示,找了很久才發(fā)現(xiàn)原來 linux 下是沒有_splitpath_s函數(shù)的,所以無法識別該函數(shù)。
4、‘fopen_s’在此作用域中尚未聲明,這里之所以用fopen_s是因為在windows調(diào)試的時候提示不安全。
5、‘strlen’在此作用域中尚未聲明,前面我聲明了一個char[10]常量,然后通過strlen來獲取該字符串的長度。
6、在windows中使用strlen只要調(diào)用了頭文件#include string和空間名using namespace std;即可使用,但是在Linux中需要添加頭文件#include string.h才行。
函數(shù)名加(實參),這樣吧...舉個例子你看一下...
int add(int x,int y)
{
int x,y;
int z;
z=x+y;
return z;
}//定義一個z=x+y的函數(shù)
int main()//主函數(shù)
{
int a=10,b=20;
int m;
m=add(a,b);//這句就是函數(shù)的調(diào)用...調(diào)用了add函數(shù)
printf("%d",m);
return m;
}
理解了沒...還沒的話...仔細(xì)看下教材...這個問題很容易解決的...
可能是這樣,a.cpp,a.h在文件夾f1中,b.cpp,b.h在文件夾2中,c.cpp,c.h也在文件夾1中,按你說的,a.cpp中引用了一個b.cpp中的函數(shù),但是a.cpp和a.h中都沒有找到對應(yīng)的函數(shù)聲明,那么有可能是這樣,a.h引用了b.h,而b.h又引用了c.h。
a.cpp中的fun1()要在b.cpp中使用,那么其實可以這樣,在b.cpp中使用fun1()之前,先聲明下fun1(),前提是b.cpp要包含a.cpp的頭文件并且fun1()也在a.cpp的頭文件中聲明。