終於解決困擾了我2天的問題!!!那叫乙個激動!!
最近做乙個專案,需要在同乙個模組中同時生成兩個so檔案,剛開始沒覺得怎麼樣,就在乙個cmakelists.txt檔案這麼寫入:
cmake_minimum_required
(version 3.4.1)
# 這是第乙個so
add_library
( a-lib
shared
a.cpp
)# 這是第二個so
add_library
( b-lib
shared
b.cpp
)find_library
( log-lib
log)# 鏈結
target_link_libraries
( a-lib
b-lib$)
as的確幫我生成了2個so,用起來也沒有問題,一切顯得很正常,不過只是表象。
ok,接下來我需要在第二個so中列印時間,測試效率,so我在b.cpp中引入#,使用print:
#include
#define tag "logger"
#define loge(...) __android_log_print(android_log_error, tag, __va_args__)
void
dosomething()
儲存,編譯,結果出現:
undefined reference to '__android_log_print'
另闢蹊徑,新建了乙個模組,單獨把b.cpp檔案拿出來,在新的模組中進行除錯,沒想到編譯竟然通過了,執行也沒有問題,這我才意識到,估計是**有衝突(目前我對c的編譯還不是很熟悉,知道為什麼的朋友麻煩告知一下)!
首先看看我的專案某個模組的結構:
我們cpp下分了2個子資料夾,每個子檔案都有自己的cpp源文件和cmakelists.txt,這裡注意了,每生成乙個so都需要乙個cmakelists.txt檔案。
我們主要看cmakelists.txt內容:
# 模組下cmakelists.txt
# 指定版本
cmake_minimum_required
(version 3.4.1)
# 這裡與參考部落格不一樣
# 新增子資料夾
add_subdirectory
(src/main/cpp/gles)
add_subdirectory
(src/main/cpp/yuv)
# cpp/gles/cmakelists.txt
# 這裡不再需要 cmake_minimum_required
add_library
( gles-lib
shared
gles-lib.cpp
)find_library
( log-lib
log)target_link_libraries
( gles-lib$)
# cpp/yuv/cmakelists.txt
# 這裡不再需要 cmake_minimum_required
add_library
( yuv-lib
shared
yuv-lib.cpp
)find_library
( log-lib
log)target_link_libraries
( yuv-lib$)
編譯,就可以在build資料夾看到生成的so檔案:
雖然問題很小,卻困擾我許久,看來我還得加強在ndk方面的知識!
乙個多socket繫結同乙個埠的測試程式
測試目標 建立多個socket的測試 測試環境 suse linux 測試步驟 建立了3個socket,但是由於繫結了不同的埠,可以邦定成功 假如繫結相同的埠,則相繼失敗。而關閉socket的時候,呼叫shutdown失敗,而close卻可以成功。在stevens的書本中,則建議使用shutdown...
同乙個IP繫結2個網域名稱
technorati 標籤 ip,網域名稱 同乙個ip繫結2個網域名稱 假設已經在isp那裡申請了2個網域名稱www.test1.com www.test2.com,而且都是繫結到伺服器的公網ip是192.168.1.100.test1是apache在本機的乙個應用,訪問url為http 192.1...
js和jQuery 同乙個例項
id dst value 4 諾基亞n85原裝充電器 option value 3 諾基亞原裝5800耳機 option value 7 諾基亞n85原裝立體聲耳機hs 82 option value 9 諾基亞e66 option value 13 諾基亞5320 xpressmusic opti...